init unity
This commit is contained in:
8
Assets/MarathonEnvs/Agents.meta
generated
Normal file
8
Assets/MarathonEnvs/Agents.meta
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 73fe48d040d7678408c5ec479120ef9f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/MarathonEnvs/Agents/Characters.meta
generated
Normal file
8
Assets/MarathonEnvs/Agents/Characters.meta
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: adefb1536f25634478a6f7b9819d02de
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/MarathonEnvs/Agents/Characters/MarathonMan004.meta
generated
Normal file
8
Assets/MarathonEnvs/Agents/Characters/MarathonMan004.meta
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6709a25fd276d6a42885e29ad59a2183
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
2520
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/AgentMove-outcome.prefab
generated
Normal file
2520
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/AgentMove-outcome.prefab
generated
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/AgentMove-outcome.prefab.meta
generated
Normal file
7
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/AgentMove-outcome.prefab.meta
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c4813c0eb838d1b4fa513c76f6b99f5f
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
2560
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/AgentMove-source.prefab
generated
Normal file
2560
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/AgentMove-source.prefab
generated
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/AgentMove-source.prefab.meta
generated
Normal file
7
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/AgentMove-source.prefab.meta
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0db68a8912718904d967ab56e13a1785
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
135
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/BlueJoints.mat
generated
Normal file
135
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/BlueJoints.mat
generated
Normal file
@@ -0,0 +1,135 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-3821349114274997365
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 7
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: BlueJoints
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.5
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 0
|
||||
- _UVSec: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0, g: 0.58620685, b: 1, a: 1}
|
||||
- _Color: {r: 0, g: 0.58620685, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
8
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/BlueJoints.mat.meta
generated
Normal file
8
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/BlueJoints.mat.meta
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4f5046ec1d1fb3d4696fd5f2f91b12d7
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
135
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/BlueSurface.mat
generated
Normal file
135
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/BlueSurface.mat
generated
Normal file
@@ -0,0 +1,135 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-6923165206544234797
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 7
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: BlueSurface
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.5
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 0
|
||||
- _UVSec: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0, g: 0.42068955, b: 1, a: 1}
|
||||
- _Color: {r: 0, g: 0.42068952, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
8
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/BlueSurface.mat.meta
generated
Normal file
8
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/BlueSurface.mat.meta
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2357ec65c9eceb94a98f3916931656d0
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/Idle.fbx
LFS
Normal file
BIN
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/Idle.fbx
LFS
Normal file
Binary file not shown.
896
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/Idle.fbx.meta
generated
Normal file
896
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/Idle.fbx.meta
generated
Normal file
@@ -0,0 +1,896 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d67d76a0f1d165e439c33842a4e6d829
|
||||
ModelImporter:
|
||||
serializedVersion: 20101
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
74: -203655887218126122
|
||||
second: mixamo.com
|
||||
externalObjects: {}
|
||||
materials:
|
||||
materialImportMode: 1
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
motionNodeName:
|
||||
rigImportErrors:
|
||||
rigImportWarnings:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 3
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations: []
|
||||
isReadable: 0
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
fileIdsGeneration: 2
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 0
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 1
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 0
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human:
|
||||
- boneName: mixamorig:Hips
|
||||
humanName: Hips
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftUpLeg
|
||||
humanName: LeftUpperLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightUpLeg
|
||||
humanName: RightUpperLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftLeg
|
||||
humanName: LeftLowerLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightLeg
|
||||
humanName: RightLowerLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftFoot
|
||||
humanName: LeftFoot
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightFoot
|
||||
humanName: RightFoot
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine
|
||||
humanName: Spine
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine1
|
||||
humanName: Chest
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Neck
|
||||
humanName: Neck
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Head
|
||||
humanName: Head
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftShoulder
|
||||
humanName: LeftShoulder
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightShoulder
|
||||
humanName: RightShoulder
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftArm
|
||||
humanName: LeftUpperArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightArm
|
||||
humanName: RightUpperArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftForeArm
|
||||
humanName: LeftLowerArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightForeArm
|
||||
humanName: RightLowerArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHand
|
||||
humanName: LeftHand
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHand
|
||||
humanName: RightHand
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftToeBase
|
||||
humanName: LeftToes
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightToeBase
|
||||
humanName: RightToes
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandThumb1
|
||||
humanName: Left Thumb Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandThumb2
|
||||
humanName: Left Thumb Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandThumb3
|
||||
humanName: Left Thumb Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandIndex1
|
||||
humanName: Left Index Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandIndex2
|
||||
humanName: Left Index Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandIndex3
|
||||
humanName: Left Index Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandMiddle1
|
||||
humanName: Left Middle Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandMiddle2
|
||||
humanName: Left Middle Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandMiddle3
|
||||
humanName: Left Middle Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandRing1
|
||||
humanName: Left Ring Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandRing2
|
||||
humanName: Left Ring Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandRing3
|
||||
humanName: Left Ring Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandPinky1
|
||||
humanName: Left Little Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandPinky2
|
||||
humanName: Left Little Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandPinky3
|
||||
humanName: Left Little Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandThumb1
|
||||
humanName: Right Thumb Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandThumb2
|
||||
humanName: Right Thumb Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandThumb3
|
||||
humanName: Right Thumb Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandIndex1
|
||||
humanName: Right Index Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandIndex2
|
||||
humanName: Right Index Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandIndex3
|
||||
humanName: Right Index Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandMiddle1
|
||||
humanName: Right Middle Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandMiddle2
|
||||
humanName: Right Middle Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandMiddle3
|
||||
humanName: Right Middle Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandRing1
|
||||
humanName: Right Ring Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandRing2
|
||||
humanName: Right Ring Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandRing3
|
||||
humanName: Right Ring Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandPinky1
|
||||
humanName: Right Little Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandPinky2
|
||||
humanName: Right Little Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandPinky3
|
||||
humanName: Right Little Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine2
|
||||
humanName: UpperChest
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
skeleton:
|
||||
- name: Idle(Clone)
|
||||
parentName:
|
||||
position: {x: 0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: Beta_Joints
|
||||
parentName: Idle(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: Beta_Surface
|
||||
parentName: Idle(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:Hips
|
||||
parentName: Idle(Clone)
|
||||
position: {x: -0.004121775, y: 1.0720447, z: 0.020950764}
|
||||
rotation: {x: -0, y: -0, z: -0.000000013460522, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:Spine
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: -0.00000009234152, y: 0.10181588, z: 0.0013152092}
|
||||
rotation: {x: -0.000000005820766, y: -0.0000000029103835, z: 0.000000013096724,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:Spine1
|
||||
parentName: mixamorig:Spine
|
||||
position: {x: -0.000000002519403, y: 0.10083451, z: -0.010008043}
|
||||
rotation: {x: 0.000000005820766, y: 0.0000000029103835, z: 1.8189894e-10, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:Spine2
|
||||
parentName: mixamorig:Spine1
|
||||
position: {x: -0.0000000034574863, y: 0.09100011, z: -0.013734171}
|
||||
rotation: {x: -0.000000002910383, y: 0.000000002910383, z: -0.0000000018189894,
|
||||
w: 1}
|
||||
scale: {x: 0.99999994, y: 1, z: 1}
|
||||
- name: mixamorig:Neck
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: -0.0000000063342855, y: 0.16671668, z: -0.025161678}
|
||||
rotation: {x: 0.0000000021827873, y: -0.000000002910383, z: 0.0000000017507773,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 0.9999999, z: 1}
|
||||
- name: mixamorig:Head
|
||||
parentName: mixamorig:Neck
|
||||
position: {x: 0.0000000042423185, y: 0.09617875, z: 0.016850075}
|
||||
rotation: {x: 7.2759576e-10, y: -0, z: 0.0000000017053026, w: 1}
|
||||
scale: {x: 1, y: 0.99999994, z: 1}
|
||||
- name: mixamorig:HeadTop_End
|
||||
parentName: mixamorig:Head
|
||||
position: {x: 0.0000000065082415, y: 0.17815155, z: 0.025849855}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftEye
|
||||
parentName: mixamorig:Head
|
||||
position: {x: -0.030675607, y: 0.06409507, z: 0.09283554}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightEye
|
||||
parentName: mixamorig:Head
|
||||
position: {x: 0.030675504, y: 0.064095, z: 0.09283547}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftShoulder
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: -0.045704465, y: 0.10945985, z: -0.02627988}
|
||||
rotation: {x: 0.0000000043655746, y: -0.000000002910383, z: -9.094947e-10, w: 1}
|
||||
scale: {x: 1, y: 0.99999994, z: 0.99999994}
|
||||
- name: mixamorig:LeftArm
|
||||
parentName: mixamorig:LeftShoulder
|
||||
position: {x: -0.1059237, y: -0.005245829, z: -0.0223212}
|
||||
rotation: {x: -0.0000000014551915, y: 0.0000000014551915, z: 0.000000008367351,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftForeArm
|
||||
parentName: mixamorig:LeftArm
|
||||
position: {x: -0.2784152, y: -0.0000008942865, z: 0.0000003745891}
|
||||
rotation: {x: -0.0000000014551915, y: -0.0000000014551915, z: -0.000000003274181,
|
||||
w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000004, z: 1.0000001}
|
||||
- name: mixamorig:LeftHand
|
||||
parentName: mixamorig:LeftForeArm
|
||||
position: {x: -0.2832884, y: -0.00000017440718, z: 0.00000037804523}
|
||||
rotation: {x: 0.0000000014551915, y: -0, z: -0.0000000021827873, w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000001, z: 1}
|
||||
- name: mixamorig:LeftHandThumb1
|
||||
parentName: mixamorig:LeftHand
|
||||
position: {x: -0.024661401, y: -0.015750492, z: 0.026824135}
|
||||
rotation: {x: -0.11863639, y: 0.08685272, z: -0.118636325, w: 0.9819916}
|
||||
scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001}
|
||||
- name: mixamorig:LeftHandThumb2
|
||||
parentName: mixamorig:LeftHandThumb1
|
||||
position: {x: -0.032298036, y: -0.018646907, z: 0.018646812}
|
||||
rotation: {x: 0.000000029103827, y: -0.000000005820766, z: 0.000000014551915,
|
||||
w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000001, z: 1}
|
||||
- name: mixamorig:LeftHandThumb3
|
||||
parentName: mixamorig:LeftHandThumb2
|
||||
position: {x: -0.02652565, y: -0.015314929, z: 0.015314716}
|
||||
rotation: {x: -0.00000003201421, y: -0.0000000058207643, z: -0.000000029831426,
|
||||
w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000002, z: 1.0000001}
|
||||
- name: mixamorig:LeftHandThumb4
|
||||
parentName: mixamorig:LeftHandThumb3
|
||||
position: {x: -0.019545669, y: -0.0112850005, z: 0.011284921}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandIndex1
|
||||
parentName: mixamorig:LeftHand
|
||||
position: {x: -0.09109301, y: -0.005170834, z: 0.02260073}
|
||||
rotation: {x: -0.000000011641532, y: -0.00000001164153, z: 1.6940656e-17, w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000001, z: 1}
|
||||
- name: mixamorig:LeftHandIndex2
|
||||
parentName: mixamorig:LeftHandIndex1
|
||||
position: {x: -0.036764093, y: -0.00000006939138, z: 0.00000029242517}
|
||||
rotation: {x: -0.000000011641532, y: 0.0000000116415295, z: 0.000000011641532,
|
||||
w: 1}
|
||||
scale: {x: 1.0000005, y: 1.0000004, z: 1}
|
||||
- name: mixamorig:LeftHandIndex3
|
||||
parentName: mixamorig:LeftHandIndex2
|
||||
position: {x: -0.028830625, y: 0.00000038511968, z: -0.00000042764816}
|
||||
rotation: {x: -0, y: 0.000000005820767, z: -0.000000029103829, w: 1}
|
||||
scale: {x: 1.0000005, y: 1.0000004, z: 1.0000001}
|
||||
- name: mixamorig:LeftHandIndex4
|
||||
parentName: mixamorig:LeftHandIndex3
|
||||
position: {x: -0.023927199, y: 0.00000037025907, z: 0.00000033554434}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandMiddle1
|
||||
parentName: mixamorig:LeftHand
|
||||
position: {x: -0.095334016, y: -0.00000033924047, z: 0.00000013937026}
|
||||
rotation: {x: 0.000000011641534, y: 0.000000011641534, z: -1.6940662e-17, w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000002, z: 1.0000001}
|
||||
- name: mixamorig:LeftHandMiddle2
|
||||
parentName: mixamorig:LeftHandMiddle1
|
||||
position: {x: -0.036982365, y: 0.00000001961359, z: 0.00000017916967}
|
||||
rotation: {x: -1.7763568e-15, y: -0.000000011641534, z: 0.000000005820766, w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000002, z: 1}
|
||||
- name: mixamorig:LeftHandMiddle3
|
||||
parentName: mixamorig:LeftHandMiddle2
|
||||
position: {x: -0.029509215, y: -0.00000039376084, z: 0.0000001644796}
|
||||
rotation: {x: -0.000000011641532, y: 0.0000000058207656, z: -0.000000014551915,
|
||||
w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000004, z: 1.0000001}
|
||||
- name: mixamorig:LeftHandMiddle4
|
||||
parentName: mixamorig:LeftHandMiddle3
|
||||
position: {x: -0.028339025, y: -0.0000003893482, z: -0.00000009504223}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandRing1
|
||||
parentName: mixamorig:LeftHand
|
||||
position: {x: -0.091045275, y: -0.00043939505, z: -0.018650847}
|
||||
rotation: {x: -3.330669e-16, y: 0.0000000349246, z: -0.000000005820767, w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000002, z: 1.0000001}
|
||||
- name: mixamorig:LeftHandRing2
|
||||
parentName: mixamorig:LeftHandRing1
|
||||
position: {x: -0.031540267, y: -0.00000006553468, z: 0.00000010425744}
|
||||
rotation: {x: 0.000000023283068, y: -0.000000029103834, z: 0.000000005820768,
|
||||
w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001}
|
||||
- name: mixamorig:LeftHandRing3
|
||||
parentName: mixamorig:LeftHandRing2
|
||||
position: {x: -0.029376723, y: -0.00000045458617, z: -0.00000006864757}
|
||||
rotation: {x: -0.000000046566132, y: 0.000000010186342, z: 0.00000003274181,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1.0000001, z: 1}
|
||||
- name: mixamorig:LeftHandRing4
|
||||
parentName: mixamorig:LeftHandRing3
|
||||
position: {x: -0.026474526, y: -0.00000049804413, z: 7.0705153e-10}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandPinky1
|
||||
parentName: mixamorig:LeftHand
|
||||
position: {x: -0.08077778, y: -0.004886682, z: -0.03806067}
|
||||
rotation: {x: 0.00000002328306, y: 0.000000011641532, z: -1.6940659e-17, w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000002, z: 1}
|
||||
- name: mixamorig:LeftHandPinky2
|
||||
parentName: mixamorig:LeftHandPinky1
|
||||
position: {x: -0.036000345, y: -0.000000022522151, z: -0.00000026238794}
|
||||
rotation: {x: 3.5527137e-15, y: 0.000000005820768, z: -0.0000000029103842, w: 1}
|
||||
scale: {x: 1.0000004, y: 1.0000004, z: 1}
|
||||
- name: mixamorig:LeftHandPinky3
|
||||
parentName: mixamorig:LeftHandPinky2
|
||||
position: {x: -0.021142116, y: 0.00000019538281, z: -0.00000002864415}
|
||||
rotation: {x: -0.000000023283064, y: -0.000000020372685, z: -0.000000017462298,
|
||||
w: 1}
|
||||
scale: {x: 1.0000005, y: 1.0000005, z: 1.0000001}
|
||||
- name: mixamorig:LeftHandPinky4
|
||||
parentName: mixamorig:LeftHandPinky3
|
||||
position: {x: -0.019756826, y: 0.00000012405657, z: -0.00000044301405}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightShoulder
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: 0.045699697, y: 0.10946176, z: -0.026280174}
|
||||
rotation: {x: 4.440892e-16, y: -0.0000000043655746, z: -0.000000005638867, w: 1}
|
||||
scale: {x: 1.0000001, y: 0.99999994, z: 0.99999994}
|
||||
- name: mixamorig:RightArm
|
||||
parentName: mixamorig:RightShoulder
|
||||
position: {x: 0.105928436, y: -0.0052479836, z: -0.022320986}
|
||||
rotation: {x: 0.0000000029103826, y: 0.0000000043655746, z: 0.0000000136424205,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1.0000004, z: 1.0000001}
|
||||
- name: mixamorig:RightForeArm
|
||||
parentName: mixamorig:RightArm
|
||||
position: {x: 0.2784152, y: -0.00000033079218, z: 0.000000116763104}
|
||||
rotation: {x: -0.0000000029103826, y: 0.000000032014214, z: -1.8189905e-10,
|
||||
w: 1}
|
||||
scale: {x: 1.0000001, y: 1.0000001, z: 1.0000001}
|
||||
- name: mixamorig:RightHand
|
||||
parentName: mixamorig:RightForeArm
|
||||
position: {x: 0.2832884, y: -0.0000000015814171, z: 0.00000055816014}
|
||||
rotation: {x: 0.0000000145519135, y: -0.00000006984919, z: -0.0000000058207656,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandPinky1
|
||||
parentName: mixamorig:RightHand
|
||||
position: {x: 0.080766745, y: -0.0048845927, z: -0.038060103}
|
||||
rotation: {x: 2.6645353e-15, y: 0.000000034924597, z: -0.000000005820767, w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001}
|
||||
- name: mixamorig:RightHandPinky2
|
||||
parentName: mixamorig:RightHandPinky1
|
||||
position: {x: 0.036000345, y: 0.00000039676655, z: 0.0000005081442}
|
||||
rotation: {x: 0.0000000116415295, y: -0.000000011641532, z: -0.000000005820766,
|
||||
w: 1}
|
||||
scale: {x: 1.0000006, y: 1.0000005, z: 1}
|
||||
- name: mixamorig:RightHandPinky3
|
||||
parentName: mixamorig:RightHandPinky2
|
||||
position: {x: 0.021142116, y: 0.00000015137925, z: 0.00000014793768}
|
||||
rotation: {x: -0.00000006984919, y: 0.0000000029103822, z: -0.000000014551912,
|
||||
w: 1}
|
||||
scale: {x: 0.9999998, y: 0.99999994, z: 1}
|
||||
- name: mixamorig:RightHandPinky4
|
||||
parentName: mixamorig:RightHandPinky3
|
||||
position: {x: 0.019756826, y: -0.00000018521958, z: -0.000000009839841}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandRing1
|
||||
parentName: mixamorig:RightHand
|
||||
position: {x: 0.09103588, y: -0.00043914348, z: -0.018650724}
|
||||
rotation: {x: -0.000000034924597, y: 0.000000034924597, z: 0.000000005820767,
|
||||
w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000001, z: 1}
|
||||
- name: mixamorig:RightHandRing2
|
||||
parentName: mixamorig:RightHandRing1
|
||||
position: {x: 0.031540267, y: 0.00000023997296, z: 0.0000004885121}
|
||||
rotation: {x: 0.00000004656613, y: 0.000000005820766, z: 0.0000000029103817,
|
||||
w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000001, z: 1}
|
||||
- name: mixamorig:RightHandRing3
|
||||
parentName: mixamorig:RightHandRing2
|
||||
position: {x: 0.029376723, y: -0.00000041600654, z: -0.00000039660634}
|
||||
rotation: {x: -0.000000011641529, y: -0.0000000058207665, z: -0.000000011641532,
|
||||
w: 1}
|
||||
scale: {x: 1.0000004, y: 1.0000004, z: 1}
|
||||
- name: mixamorig:RightHandRing4
|
||||
parentName: mixamorig:RightHandRing3
|
||||
position: {x: 0.026474526, y: 0.00000024608212, z: -0.000000022949234}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandMiddle1
|
||||
parentName: mixamorig:RightHand
|
||||
position: {x: 0.09532503, y: -0.00000016312302, z: 0.00000016791842}
|
||||
rotation: {x: 1.7763568e-15, y: 0.000000023283064, z: 0.000000005820765, w: 1}
|
||||
scale: {x: 1.0000001, y: 1.0000001, z: 1}
|
||||
- name: mixamorig:RightHandMiddle2
|
||||
parentName: mixamorig:RightHandMiddle1
|
||||
position: {x: 0.036982365, y: 0.00000015066959, z: -0.00000022545524}
|
||||
rotation: {x: -0.000000011641532, y: 0.000000005820766, z: -0.000000017462295,
|
||||
w: 1}
|
||||
scale: {x: 1.0000004, y: 1.0000004, z: 1.0000001}
|
||||
- name: mixamorig:RightHandMiddle3
|
||||
parentName: mixamorig:RightHandMiddle2
|
||||
position: {x: 0.029509215, y: -0.000000003113245, z: -0.0000000030340255}
|
||||
rotation: {x: -0, y: 0.000000011641532, z: 0.0000000145519135, w: 1}
|
||||
scale: {x: 1.0000001, y: 1.0000001, z: 1}
|
||||
- name: mixamorig:RightHandMiddle4
|
||||
parentName: mixamorig:RightHandMiddle3
|
||||
position: {x: 0.028339025, y: 0.00000008053241, z: 0.00000053787704}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandIndex1
|
||||
parentName: mixamorig:RightHand
|
||||
position: {x: 0.09108281, y: -0.0051678894, z: 0.022601163}
|
||||
rotation: {x: -0.00000001164153, y: 0.000000034924597, z: 6.4130506e-17, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandIndex2
|
||||
parentName: mixamorig:RightHandIndex1
|
||||
position: {x: 0.036764093, y: 0.00000019227156, z: 0.0000003235567}
|
||||
rotation: {x: -0, y: -0.000000005820766, z: -0.000000011641531, w: 1}
|
||||
scale: {x: 1.0000001, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandIndex3
|
||||
parentName: mixamorig:RightHandIndex2
|
||||
position: {x: 0.028830625, y: -0.00000049601215, z: 0.00000040448975}
|
||||
rotation: {x: -0.000000023283063, y: -0.000000001455192, z: 0.000000043655746,
|
||||
w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001}
|
||||
- name: mixamorig:RightHandIndex4
|
||||
parentName: mixamorig:RightHandIndex3
|
||||
position: {x: 0.023927199, y: 0.000000268147, z: 0.00000028020133}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandThumb1
|
||||
parentName: mixamorig:RightHand
|
||||
position: {x: 0.024648061, y: -0.015727142, z: 0.026826264}
|
||||
rotation: {x: -0.11863704, y: -0.086847514, z: 0.1186371, w: 0.9819919}
|
||||
scale: {x: 1, y: 1, z: 1.0000001}
|
||||
- name: mixamorig:RightHandThumb2
|
||||
parentName: mixamorig:RightHandThumb1
|
||||
position: {x: 0.03229772, y: -0.018647088, z: 0.018647185}
|
||||
rotation: {x: 0.000000011641534, y: 0.000000020372681, z: -0.000000016734703,
|
||||
w: 1}
|
||||
scale: {x: 1.0000001, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandThumb3
|
||||
parentName: mixamorig:RightHandThumb2
|
||||
position: {x: 0.02652605, y: -0.015314492, z: 0.015314456}
|
||||
rotation: {x: -0.000000011641534, y: 0.000000002910383, z: 0.000000016734703,
|
||||
w: 1}
|
||||
scale: {x: 1.0000001, y: 1.0000001, z: 1.0000001}
|
||||
- name: mixamorig:RightHandThumb4
|
||||
parentName: mixamorig:RightHandThumb3
|
||||
position: {x: 0.019545805, y: -0.011284617, z: 0.01128507}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightUpLeg
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: 0.08207796, y: -0.06751662, z: -0.015995594}
|
||||
rotation: {x: 0.000000005820767, y: -0.00000001164153, z: 0.000000013460522,
|
||||
w: 1}
|
||||
scale: {x: 0.99999994, y: 1, z: 1}
|
||||
- name: mixamorig:RightLeg
|
||||
parentName: mixamorig:RightUpLeg
|
||||
position: {x: -8.435572e-10, y: -0.44370535, z: 0.0028615638}
|
||||
rotation: {x: -0.000000011641532, y: 0.00000001164153, z: 4.560602e-25, w: 1}
|
||||
scale: {x: 1.0000001, y: 1.0000001, z: 1}
|
||||
- name: mixamorig:RightFoot
|
||||
parentName: mixamorig:RightLeg
|
||||
position: {x: -0.000000009644582, y: -0.4442773, z: -0.02983789}
|
||||
rotation: {x: 0.000000005820765, y: 0.000000011641532, z: -1.6408316e-15, w: 1}
|
||||
scale: {x: 1.0000001, y: 1, z: 1}
|
||||
- name: mixamorig:RightToeBase
|
||||
parentName: mixamorig:RightFoot
|
||||
position: {x: 0.00000002360438, y: -0.08728669, z: 0.107105605}
|
||||
rotation: {x: -7.275953e-10, y: -0.000000011641532, z: 1.819007e-10, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightToe_End
|
||||
parentName: mixamorig:RightToeBase
|
||||
position: {x: 0.000000020942645, y: -0.000006763694, z: 0.0927812}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftUpLeg
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: -0.082077816, y: -0.06751714, z: -0.015995556}
|
||||
rotation: {x: -9.529121e-18, y: 0.0000000029103826, z: 0.000000014915713, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1.0000001}
|
||||
- name: mixamorig:LeftLeg
|
||||
parentName: mixamorig:LeftUpLeg
|
||||
position: {x: 0.000000004110158, y: -0.44370472, z: 0.0028464263}
|
||||
rotation: {x: -0.000000011641532, y: -0.0000000029103826, z: 0.0000000014551917,
|
||||
w: 1}
|
||||
scale: {x: 1.0000001, y: 1, z: 1}
|
||||
- name: mixamorig:LeftFoot
|
||||
parentName: mixamorig:LeftLeg
|
||||
position: {x: -0.0000000047163935, y: -0.44427872, z: -0.029821906}
|
||||
rotation: {x: 0.000000011641532, y: -0, z: -0.0000000028876457, w: 1}
|
||||
scale: {x: 1.0000001, y: 1, z: 1}
|
||||
- name: mixamorig:LeftToeBase
|
||||
parentName: mixamorig:LeftFoot
|
||||
position: {x: 0.000000029609879, y: -0.087286696, z: 0.1071056}
|
||||
rotation: {x: -0, y: 7.940934e-19, z: 6.82121e-11, w: 1}
|
||||
scale: {x: 1, y: 0.99999994, z: 1}
|
||||
- name: mixamorig:LeftToe_End
|
||||
parentName: mixamorig:LeftToeBase
|
||||
position: {x: 0.000000025080618, y: -0.0000067668298, z: 0.09278136}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
globalScale: 1
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 1
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 3
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 1
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
4850
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/MarathonMan004.prefab
generated
Normal file
4850
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/MarathonMan004.prefab
generated
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/MarathonMan004.prefab.meta
generated
Normal file
7
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/MarathonMan004.prefab.meta
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6a7e84e6b4b64c744857753e3e544b81
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
138
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/RedJoints.mat
generated
Normal file
138
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/RedJoints.mat
generated
Normal file
@@ -0,0 +1,138 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-2464581126296511126
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 7
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: RedJoints
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _SURFACE_TYPE_TRANSPARENT
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- DepthOnly
|
||||
- SHADOWCASTER
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 1
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 10
|
||||
- _DstBlendAlpha: 10
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 3
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 1
|
||||
- _UVSec: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.3333333, g: 0.12452885, b: 0.101014696, a: 0.24705882}
|
||||
- _Color: {r: 0.33333328, g: 0.12452882, b: 0.101014666, a: 0.24705882}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
8
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/RedJoints.mat.meta
generated
Normal file
8
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/RedJoints.mat.meta
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7c75b8d76b8c90345b5654cf72a22ec9
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
138
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/RedSurface.mat
generated
Normal file
138
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/RedSurface.mat
generated
Normal file
@@ -0,0 +1,138 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: RedSurface
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _SURFACE_TYPE_TRANSPARENT
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- DepthOnly
|
||||
- SHADOWCASTER
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 1
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 10
|
||||
- _DstBlendAlpha: 10
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 3
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 1
|
||||
- _UVSec: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.837, g: 0.302308, b: 0.26365498, a: 0.24705882}
|
||||
- _Color: {r: 0.837, g: 0.30230796, b: 0.26365495, a: 0.24705882}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
--- !u!114 &229737655439550173
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 7
|
||||
8
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/RedSurface.mat.meta
generated
Normal file
8
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/RedSurface.mat.meta
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2f6fa6aa88fbef742bf021e621193eaf
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/T-Pose.fbx
LFS
Normal file
BIN
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/T-Pose.fbx
LFS
Normal file
Binary file not shown.
914
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/T-Pose.fbx.meta
generated
Normal file
914
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/T-Pose.fbx.meta
generated
Normal file
@@ -0,0 +1,914 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 65a3c32d6ec98fc479df350fa87900c7
|
||||
ModelImporter:
|
||||
serializedVersion: 20101
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
74: -203655887218126122
|
||||
second: mixamo.com
|
||||
externalObjects: {}
|
||||
materials:
|
||||
materialImportMode: 1
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
motionNodeName:
|
||||
rigImportErrors:
|
||||
rigImportWarnings:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 3
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations:
|
||||
- serializedVersion: 16
|
||||
name: mixamo.com
|
||||
takeName: mixamo.com
|
||||
internalID: 0
|
||||
firstFrame: 0
|
||||
lastFrame: 1
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 0
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 1
|
||||
keepOriginalPositionY: 0
|
||||
keepOriginalPositionXZ: 1
|
||||
heightFromFeet: 1
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events: []
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
isReadable: 0
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
fileIdsGeneration: 2
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 0
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 1
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human:
|
||||
- boneName: mixamorig:Hips
|
||||
humanName: Hips
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftUpLeg
|
||||
humanName: LeftUpperLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightUpLeg
|
||||
humanName: RightUpperLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftLeg
|
||||
humanName: LeftLowerLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightLeg
|
||||
humanName: RightLowerLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftFoot
|
||||
humanName: LeftFoot
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightFoot
|
||||
humanName: RightFoot
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine
|
||||
humanName: Spine
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine1
|
||||
humanName: Chest
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Neck
|
||||
humanName: Neck
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Head
|
||||
humanName: Head
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftShoulder
|
||||
humanName: LeftShoulder
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightShoulder
|
||||
humanName: RightShoulder
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftArm
|
||||
humanName: LeftUpperArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightArm
|
||||
humanName: RightUpperArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftForeArm
|
||||
humanName: LeftLowerArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightForeArm
|
||||
humanName: RightLowerArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHand
|
||||
humanName: LeftHand
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHand
|
||||
humanName: RightHand
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftToeBase
|
||||
humanName: LeftToes
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightToeBase
|
||||
humanName: RightToes
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandThumb1
|
||||
humanName: Left Thumb Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandThumb2
|
||||
humanName: Left Thumb Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandThumb3
|
||||
humanName: Left Thumb Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandIndex1
|
||||
humanName: Left Index Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandIndex2
|
||||
humanName: Left Index Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandIndex3
|
||||
humanName: Left Index Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandMiddle1
|
||||
humanName: Left Middle Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandMiddle2
|
||||
humanName: Left Middle Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandMiddle3
|
||||
humanName: Left Middle Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandRing1
|
||||
humanName: Left Ring Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandRing2
|
||||
humanName: Left Ring Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandRing3
|
||||
humanName: Left Ring Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandPinky1
|
||||
humanName: Left Little Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandPinky2
|
||||
humanName: Left Little Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHandPinky3
|
||||
humanName: Left Little Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandThumb1
|
||||
humanName: Right Thumb Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandThumb2
|
||||
humanName: Right Thumb Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandThumb3
|
||||
humanName: Right Thumb Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandIndex1
|
||||
humanName: Right Index Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandIndex2
|
||||
humanName: Right Index Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandIndex3
|
||||
humanName: Right Index Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandMiddle1
|
||||
humanName: Right Middle Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandMiddle2
|
||||
humanName: Right Middle Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandMiddle3
|
||||
humanName: Right Middle Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandRing1
|
||||
humanName: Right Ring Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandRing2
|
||||
humanName: Right Ring Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandRing3
|
||||
humanName: Right Ring Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandPinky1
|
||||
humanName: Right Little Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandPinky2
|
||||
humanName: Right Little Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHandPinky3
|
||||
humanName: Right Little Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine2
|
||||
humanName: UpperChest
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
skeleton:
|
||||
- name: T-Pose(Clone)
|
||||
parentName:
|
||||
position: {x: 0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: Beta_Joints
|
||||
parentName: T-Pose(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: Beta_Surface
|
||||
parentName: T-Pose(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:Hips
|
||||
parentName: T-Pose(Clone)
|
||||
position: {x: 0.00000007727291, y: 1.0427487, z: 0.015543158}
|
||||
rotation: {x: 5.5795913e-16, y: 0.00000002135681, z: -0.00000070372965, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:Spine
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: -0.00000009234152, y: 0.10181588, z: 0.0013152092}
|
||||
rotation: {x: -5.5794124e-16, y: -0.00000002135681, z: 0.00000070372874, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:Spine1
|
||||
parentName: mixamorig:Spine
|
||||
position: {x: -0.000000002519403, y: 0.10083451, z: -0.010008043}
|
||||
rotation: {x: 3.8774097e-26, y: -4.2632574e-14, z: 6.82121e-13, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:Spine2
|
||||
parentName: mixamorig:Spine1
|
||||
position: {x: -0.0000000034574863, y: 0.09100011, z: -0.013734171}
|
||||
rotation: {x: 0, y: -0, z: -1.8055514e-34, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:Neck
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: -0.0000000063342855, y: 0.16671668, z: -0.025161678}
|
||||
rotation: {x: -5.2041704e-18, y: 4.2632927e-14, z: 2.273737e-13, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:Head
|
||||
parentName: mixamorig:Neck
|
||||
position: {x: 0.0000000042423185, y: 0.09617875, z: 0.016850075}
|
||||
rotation: {x: 0, y: -0, z: -2.3142172e-36, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:HeadTop_End
|
||||
parentName: mixamorig:Head
|
||||
position: {x: 0.0000000065082415, y: 0.17815155, z: 0.025849855}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftEye
|
||||
parentName: mixamorig:Head
|
||||
position: {x: -0.030675607, y: 0.06409507, z: 0.09283554}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightEye
|
||||
parentName: mixamorig:Head
|
||||
position: {x: 0.030675504, y: 0.064095, z: 0.09283547}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftShoulder
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: -0.045704465, y: 0.10945985, z: -0.02627988}
|
||||
rotation: {x: -0.000000044703484, y: 3.8567765e-14, z: -0.00000013563118, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftArm
|
||||
parentName: mixamorig:LeftShoulder
|
||||
position: {x: -0.1059237, y: -0.005245829, z: -0.0223212}
|
||||
rotation: {x: 0.000000044703484, y: 8.4346904e-14, z: -0.0000016602488, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftForeArm
|
||||
parentName: mixamorig:LeftArm
|
||||
position: {x: -0.2784152, y: -0.0000008942865, z: 0.0000003745891}
|
||||
rotation: {x: -0.000000059604645, y: 0.0000000038620516, z: 0.0000017958803,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHand
|
||||
parentName: mixamorig:LeftForeArm
|
||||
position: {x: -0.2832884, y: -0.00000017440718, z: 0.00000037804523}
|
||||
rotation: {x: 0.00022562433, y: 0.000000044703473, z: -1.0083181e-11, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandThumb1
|
||||
parentName: mixamorig:LeftHand
|
||||
position: {x: -0.024661401, y: -0.015750492, z: 0.026824135}
|
||||
rotation: {x: -0.118723094, y: 0.08687735, z: -0.11875274, w: 0.9819648}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandThumb2
|
||||
parentName: mixamorig:LeftHandThumb1
|
||||
position: {x: -0.032298036, y: -0.018646907, z: 0.018646812}
|
||||
rotation: {x: 0.00000010496793, y: -0.000004944398, z: -0.000004780959, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandThumb3
|
||||
parentName: mixamorig:LeftHandThumb2
|
||||
position: {x: -0.02652565, y: -0.015314929, z: 0.015314716}
|
||||
rotation: {x: 4.661964e-12, y: 0.00000059509927, z: 0.00000063981753, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandThumb4
|
||||
parentName: mixamorig:LeftHandThumb3
|
||||
position: {x: -0.019545669, y: -0.0112850005, z: 0.011284921}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandIndex1
|
||||
parentName: mixamorig:LeftHand
|
||||
position: {x: -0.09109301, y: -0.005170834, z: 0.02260073}
|
||||
rotation: {x: 0.00000007450579, y: -6.7234625e-12, z: -0.000000014901159, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandIndex2
|
||||
parentName: mixamorig:LeftHandIndex1
|
||||
position: {x: -0.036764093, y: -0.00000006939138, z: 0.00000029242517}
|
||||
rotation: {x: -0.00000010430811, y: 0.000000014901151, z: -6.7230145e-12, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandIndex3
|
||||
parentName: mixamorig:LeftHandIndex2
|
||||
position: {x: -0.028830625, y: 0.00000038511968, z: -0.00000042764816}
|
||||
rotation: {x: 8.452564e-15, y: 0.0000000148742725, z: -0.00000005961137, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandIndex4
|
||||
parentName: mixamorig:LeftHandIndex3
|
||||
position: {x: -0.023927199, y: 0.00000037025907, z: 0.00000033554434}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandMiddle1
|
||||
parentName: mixamorig:LeftHand
|
||||
position: {x: -0.095334016, y: -0.00000033924047, z: 0.00000013937026}
|
||||
rotation: {x: 0.000000014901157, y: -0.00000004469004, z: 0.00000002982249,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandMiddle2
|
||||
parentName: mixamorig:LeftHandMiddle1
|
||||
position: {x: -0.036982365, y: 0.00000001961359, z: 0.00000017916967}
|
||||
rotation: {x: -0.0000000149011585, y: 0.000000014901165, z: -6.7261296e-12,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandMiddle3
|
||||
parentName: mixamorig:LeftHandMiddle2
|
||||
position: {x: -0.029509215, y: -0.00000039376084, z: 0.0000001644796}
|
||||
rotation: {x: 5.594566e-16, y: -6.7223536e-12, z: -0.000000014901161, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandMiddle4
|
||||
parentName: mixamorig:LeftHandMiddle3
|
||||
position: {x: -0.028339025, y: -0.0000003893482, z: -0.00000009504223}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandRing1
|
||||
parentName: mixamorig:LeftHand
|
||||
position: {x: -0.091045275, y: -0.00043939505, z: -0.018650847}
|
||||
rotation: {x: 0.000000029802315, y: -0.000000029795597, z: 0.000000014914605,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandRing2
|
||||
parentName: mixamorig:LeftHandRing1
|
||||
position: {x: -0.031540267, y: -0.00000006553468, z: 0.00000010425744}
|
||||
rotation: {x: -0.000000029802314, y: 0.000000029782148, z: -0.000000044716913,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandRing3
|
||||
parentName: mixamorig:LeftHandRing2
|
||||
position: {x: -0.029376723, y: -0.00000045458617, z: -0.00000006864757}
|
||||
rotation: {x: 0.00000005960463, y: -0.0000000148944315, z: 0.000000014907876,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandRing4
|
||||
parentName: mixamorig:LeftHandRing3
|
||||
position: {x: -0.026474526, y: -0.00000049804413, z: 7.0705153e-10}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandPinky1
|
||||
parentName: mixamorig:LeftHand
|
||||
position: {x: -0.08077778, y: -0.004886682, z: -0.03806067}
|
||||
rotation: {x: 0.000000029802317, y: -0.000000014907881, z: -0.000000014894434,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandPinky2
|
||||
parentName: mixamorig:LeftHandPinky1
|
||||
position: {x: -0.036000345, y: -0.000000022522151, z: -0.00000026238794}
|
||||
rotation: {x: 0.000000029802315, y: -0.000000014894437, z: 0.000000014907881,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandPinky3
|
||||
parentName: mixamorig:LeftHandPinky2
|
||||
position: {x: -0.021142116, y: 0.00000019538281, z: -0.00000002864415}
|
||||
rotation: {x: -0.00000005960463, y: -0.000000029815762, z: -0.000000029788868,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftHandPinky4
|
||||
parentName: mixamorig:LeftHandPinky3
|
||||
position: {x: -0.019756826, y: 0.00000012405657, z: -0.00000044301405}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightShoulder
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: 0.045699697, y: 0.10946176, z: -0.026280174}
|
||||
rotation: {x: -0.000000014901161, y: 4.3930442e-14, z: 0.000000042395698, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightArm
|
||||
parentName: mixamorig:RightShoulder
|
||||
position: {x: 0.105928436, y: -0.0052479836, z: -0.022320986}
|
||||
rotation: {x: 0.000000014901161, y: -1.2978756e-15, z: -0.000000042395467, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightForeArm
|
||||
parentName: mixamorig:RightArm
|
||||
position: {x: 0.2784152, y: -0.00000033079218, z: 0.000000116763104}
|
||||
rotation: {x: -0.000000059604638, y: 0.0000017611261, z: -1.09214605e-13, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHand
|
||||
parentName: mixamorig:RightForeArm
|
||||
position: {x: 0.2832884, y: -0.0000000015814171, z: 0.00000055816014}
|
||||
rotation: {x: 0.00023261023, y: -0.0000018096918, z: 4.2094897e-10, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandPinky1
|
||||
parentName: mixamorig:RightHand
|
||||
position: {x: 0.080766745, y: -0.0048845927, z: -0.038060103}
|
||||
rotation: {x: 0.000000074505586, y: 0.0000138888945, z: 0.000000014902197, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandPinky2
|
||||
parentName: mixamorig:RightHandPinky1
|
||||
position: {x: 0.036000345, y: 0.00000039676655, z: 0.0000005081442}
|
||||
rotation: {x: -0.000000014900952, y: -0.000013859092, z: -0.00000001491523,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandPinky3
|
||||
parentName: mixamorig:RightHandPinky2
|
||||
position: {x: 0.021142116, y: 0.00000015137925, z: 0.00000014793768}
|
||||
rotation: {x: -0.000000089406946, y: -6.1947887e-19, z: -1.3318336e-15, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandPinky4
|
||||
parentName: mixamorig:RightHandPinky3
|
||||
position: {x: 0.019756826, y: -0.00000018521958, z: -0.000000009839841}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandRing1
|
||||
parentName: mixamorig:RightHand
|
||||
position: {x: 0.09103588, y: -0.00043914348, z: -0.018650724}
|
||||
rotation: {x: 0.000000029802315, y: 0.000000029795387, z: -0.00000001491502,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandRing2
|
||||
parentName: mixamorig:RightHandRing1
|
||||
position: {x: 0.031540267, y: 0.00000023997296, z: 0.0000004885121}
|
||||
rotation: {x: -0.000000029802314, y: -0.000000029781521, z: 0.000000044717336,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandRing3
|
||||
parentName: mixamorig:RightHandRing2
|
||||
position: {x: 0.029376723, y: -0.00000041600654, z: -0.00000039660634}
|
||||
rotation: {x: 0.000000059604627, y: 0.0000000148664965, z: -0.00000007451271,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandRing4
|
||||
parentName: mixamorig:RightHandRing3
|
||||
position: {x: 0.026474526, y: 0.00000024608212, z: -0.000000022949234}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandMiddle1
|
||||
parentName: mixamorig:RightHand
|
||||
position: {x: 0.09532503, y: -0.00000016312302, z: 0.00000016791842}
|
||||
rotation: {x: 0.000000014901157, y: 0.000000044689624, z: -0.000000029823113,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandMiddle2
|
||||
parentName: mixamorig:RightHandMiddle1
|
||||
position: {x: 0.036982365, y: 0.00000015066959, z: -0.00000022545524}
|
||||
rotation: {x: -0.0000000149011585, y: -0.000000014901165, z: 6.930773e-12, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandMiddle3
|
||||
parentName: mixamorig:RightHandMiddle2
|
||||
position: {x: 0.029509215, y: -0.000000003113245, z: -0.0000000030340255}
|
||||
rotation: {x: 0.000000059603845, y: 0.000017673352, z: 0.00000004469067, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandMiddle4
|
||||
parentName: mixamorig:RightHandMiddle3
|
||||
position: {x: 0.028339025, y: 0.00000008053241, z: 0.00000053787704}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandIndex1
|
||||
parentName: mixamorig:RightHand
|
||||
position: {x: 0.09108281, y: -0.0051678894, z: 0.022601163}
|
||||
rotation: {x: 0.000000014901159, y: 6.934323e-12, z: 0.0000000149011585, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandIndex2
|
||||
parentName: mixamorig:RightHandIndex1
|
||||
position: {x: 0.036764093, y: 0.00000019227156, z: 0.0000003235567}
|
||||
rotation: {x: -0.000000044703473, y: -0.000000014901154, z: 6.9321007e-12, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandIndex3
|
||||
parentName: mixamorig:RightHandIndex2
|
||||
position: {x: 0.028830625, y: -0.00000049601215, z: 0.00000040448975}
|
||||
rotation: {x: 0.000000029802319, y: 0.000000014915011, z: 0.000000029795393,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandIndex4
|
||||
parentName: mixamorig:RightHandIndex3
|
||||
position: {x: 0.023927199, y: 0.000000268147, z: 0.00000028020133}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandThumb1
|
||||
parentName: mixamorig:RightHand
|
||||
position: {x: 0.024648061, y: -0.015727142, z: 0.026826264}
|
||||
rotation: {x: -0.118725814, y: -0.086873986, z: 0.11875655, w: 0.9819644}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandThumb2
|
||||
parentName: mixamorig:RightHandThumb1
|
||||
position: {x: 0.03229772, y: -0.018647088, z: 0.018647185}
|
||||
rotation: {x: 0.000000029786868, y: -0.0000065657905, z: -0.0000065806976, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandThumb3
|
||||
parentName: mixamorig:RightHandThumb2
|
||||
position: {x: 0.02652605, y: -0.015314492, z: 0.015314456}
|
||||
rotation: {x: 0.000000029804987, y: 0.000010714707, z: 0.000010640214, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightHandThumb4
|
||||
parentName: mixamorig:RightHandThumb3
|
||||
position: {x: 0.019545805, y: -0.011284617, z: 0.01128507}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightUpLeg
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: 0.08207796, y: -0.06751662, z: -0.015995594}
|
||||
rotation: {x: -0.0006736767, y: -0.000000022158684, z: 0.0000007132908, w: 0.99999976}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightLeg
|
||||
parentName: mixamorig:RightUpLeg
|
||||
position: {x: -8.435572e-10, y: -0.44370535, z: 0.0028615638}
|
||||
rotation: {x: 0.0013461137, y: 0.00000001453026, z: 0.0000000017475387, w: 0.9999991}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightFoot
|
||||
parentName: mixamorig:RightLeg
|
||||
position: {x: -0.000000009644582, y: -0.4442773, z: -0.02983789}
|
||||
rotation: {x: -0.0006724375, y: 6.846273e-10, z: -0.000000011323817, w: 0.99999976}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightToeBase
|
||||
parentName: mixamorig:RightFoot
|
||||
position: {x: 0.00000002360438, y: -0.08728669, z: 0.107105605}
|
||||
rotation: {x: 0.000000014650141, y: 6.5304206e-11, z: -3.3796616e-12, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:RightToe_End
|
||||
parentName: mixamorig:RightToeBase
|
||||
position: {x: 0.000000020942645, y: -0.000006763694, z: 0.0927812}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftUpLeg
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: -0.082077816, y: -0.06751714, z: -0.015995556}
|
||||
rotation: {x: -0.0007022143, y: -0.000000022163992, z: 0.0000007135213, w: 0.99999976}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftLeg
|
||||
parentName: mixamorig:LeftUpLeg
|
||||
position: {x: 0.000000004110158, y: -0.44370472, z: 0.0028464263}
|
||||
rotation: {x: 0.0014022698, y: -3.3268402e-10, z: -1.3309691e-10, w: 0.99999905}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftFoot
|
||||
parentName: mixamorig:LeftLeg
|
||||
position: {x: -0.0000000047163935, y: -0.44427872, z: -0.029821906}
|
||||
rotation: {x: -0.0007000565, y: 6.3139166e-10, z: -0.000000010605688, w: 0.99999976}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftToeBase
|
||||
parentName: mixamorig:LeftFoot
|
||||
position: {x: 0.000000029609879, y: -0.087286696, z: 0.1071056}
|
||||
rotation: {x: 2.4374452e-10, y: 1.1699966e-10, z: 9.293838e-10, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftToe_End
|
||||
parentName: mixamorig:LeftToeBase
|
||||
position: {x: 0.000000025080618, y: -0.0000067668298, z: 0.09278136}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
globalScale: 1
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 1
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 3
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 1
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
135
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/TargetDebug.mat
generated
Normal file
135
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/TargetDebug.mat
generated
Normal file
@@ -0,0 +1,135 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-2951126682242351315
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 7
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: TargetDebug
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 0
|
||||
- _UVSec: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.5849056, g: 0.5849056, b: 0.5849056, a: 1}
|
||||
- _Color: {r: 0.5849056, g: 0.5849056, b: 0.5849056, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
8
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/TargetDebug.mat.meta
generated
Normal file
8
Assets/MarathonEnvs/Agents/Characters/MarathonMan004/TargetDebug.mat.meta
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 627fb1f9c85d0ab498c358b8ff0d6de6
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/MarathonEnvs/Agents/Models.meta
generated
Normal file
8
Assets/MarathonEnvs/Agents/Models.meta
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 59ac31a5d62fe484ab3049c9aa046883
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/MarathonEnvs/Agents/Models/DReCon-v0.onnx
Normal file
BIN
Assets/MarathonEnvs/Agents/Models/DReCon-v0.onnx
Normal file
Binary file not shown.
13
Assets/MarathonEnvs/Agents/Models/DReCon-v0.onnx.meta
generated
Normal file
13
Assets/MarathonEnvs/Agents/Models/DReCon-v0.onnx.meta
generated
Normal file
@@ -0,0 +1,13 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0e791689cf0300c4fbe8be76f09fccff
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 11500000, guid: 683b6cb6d0a474744822c888b46772c9, type: 3}
|
||||
optimizeModel: 1
|
||||
forceArbitraryBatchSize: 1
|
||||
treatErrorsAsWarnings: 0
|
||||
8
Assets/MarathonEnvs/Animations.meta
generated
Normal file
8
Assets/MarathonEnvs/Animations.meta
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 47b3f2697844b6943a49ac0ee8c0dbac
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/MarathonEnvs/Animations/Locomotion Pack.meta
generated
Normal file
8
Assets/MarathonEnvs/Animations/Locomotion Pack.meta
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 34dfde91388b827469e7eca847c581f3
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/MarathonEnvs/Animations/Locomotion Pack/idle.fbx
LFS
Normal file
BIN
Assets/MarathonEnvs/Animations/Locomotion Pack/idle.fbx
LFS
Normal file
Binary file not shown.
767
Assets/MarathonEnvs/Animations/Locomotion Pack/idle.fbx.meta
generated
Normal file
767
Assets/MarathonEnvs/Animations/Locomotion Pack/idle.fbx.meta
generated
Normal file
@@ -0,0 +1,767 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2d10b50dc653e4052a4407c743c3da5c
|
||||
ModelImporter:
|
||||
serializedVersion: 20200
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
1: 100000
|
||||
second: //RootNode
|
||||
- first:
|
||||
1: 100002
|
||||
second: mixamorig:Head
|
||||
- first:
|
||||
1: 100004
|
||||
second: mixamorig:HeadTop_End
|
||||
- first:
|
||||
1: 100006
|
||||
second: mixamorig:Hips
|
||||
- first:
|
||||
1: 100008
|
||||
second: mixamorig:LeftArm
|
||||
- first:
|
||||
1: 100010
|
||||
second: mixamorig:LeftFoot
|
||||
- first:
|
||||
1: 100012
|
||||
second: mixamorig:LeftForeArm
|
||||
- first:
|
||||
1: 100014
|
||||
second: mixamorig:LeftHand
|
||||
- first:
|
||||
1: 100016
|
||||
second: mixamorig:LeftLeg
|
||||
- first:
|
||||
1: 100018
|
||||
second: mixamorig:LeftShoulder
|
||||
- first:
|
||||
1: 100020
|
||||
second: mixamorig:LeftToe_End
|
||||
- first:
|
||||
1: 100022
|
||||
second: mixamorig:LeftToeBase
|
||||
- first:
|
||||
1: 100024
|
||||
second: mixamorig:LeftUpLeg
|
||||
- first:
|
||||
1: 100026
|
||||
second: mixamorig:Neck
|
||||
- first:
|
||||
1: 100028
|
||||
second: mixamorig:RightArm
|
||||
- first:
|
||||
1: 100030
|
||||
second: mixamorig:RightFoot
|
||||
- first:
|
||||
1: 100032
|
||||
second: mixamorig:RightForeArm
|
||||
- first:
|
||||
1: 100034
|
||||
second: mixamorig:RightHand
|
||||
- first:
|
||||
1: 100036
|
||||
second: mixamorig:RightLeg
|
||||
- first:
|
||||
1: 100038
|
||||
second: mixamorig:RightShoulder
|
||||
- first:
|
||||
1: 100040
|
||||
second: mixamorig:RightToe_End
|
||||
- first:
|
||||
1: 100042
|
||||
second: mixamorig:RightToeBase
|
||||
- first:
|
||||
1: 100044
|
||||
second: mixamorig:RightUpLeg
|
||||
- first:
|
||||
1: 100046
|
||||
second: mixamorig:Spine
|
||||
- first:
|
||||
1: 100048
|
||||
second: mixamorig:Spine1
|
||||
- first:
|
||||
1: 100050
|
||||
second: mixamorig:Spine2
|
||||
- first:
|
||||
4: 400000
|
||||
second: //RootNode
|
||||
- first:
|
||||
4: 400002
|
||||
second: mixamorig:Head
|
||||
- first:
|
||||
4: 400004
|
||||
second: mixamorig:HeadTop_End
|
||||
- first:
|
||||
4: 400006
|
||||
second: mixamorig:Hips
|
||||
- first:
|
||||
4: 400008
|
||||
second: mixamorig:LeftArm
|
||||
- first:
|
||||
4: 400010
|
||||
second: mixamorig:LeftFoot
|
||||
- first:
|
||||
4: 400012
|
||||
second: mixamorig:LeftForeArm
|
||||
- first:
|
||||
4: 400014
|
||||
second: mixamorig:LeftHand
|
||||
- first:
|
||||
4: 400016
|
||||
second: mixamorig:LeftLeg
|
||||
- first:
|
||||
4: 400018
|
||||
second: mixamorig:LeftShoulder
|
||||
- first:
|
||||
4: 400020
|
||||
second: mixamorig:LeftToe_End
|
||||
- first:
|
||||
4: 400022
|
||||
second: mixamorig:LeftToeBase
|
||||
- first:
|
||||
4: 400024
|
||||
second: mixamorig:LeftUpLeg
|
||||
- first:
|
||||
4: 400026
|
||||
second: mixamorig:Neck
|
||||
- first:
|
||||
4: 400028
|
||||
second: mixamorig:RightArm
|
||||
- first:
|
||||
4: 400030
|
||||
second: mixamorig:RightFoot
|
||||
- first:
|
||||
4: 400032
|
||||
second: mixamorig:RightForeArm
|
||||
- first:
|
||||
4: 400034
|
||||
second: mixamorig:RightHand
|
||||
- first:
|
||||
4: 400036
|
||||
second: mixamorig:RightLeg
|
||||
- first:
|
||||
4: 400038
|
||||
second: mixamorig:RightShoulder
|
||||
- first:
|
||||
4: 400040
|
||||
second: mixamorig:RightToe_End
|
||||
- first:
|
||||
4: 400042
|
||||
second: mixamorig:RightToeBase
|
||||
- first:
|
||||
4: 400044
|
||||
second: mixamorig:RightUpLeg
|
||||
- first:
|
||||
4: 400046
|
||||
second: mixamorig:Spine
|
||||
- first:
|
||||
4: 400048
|
||||
second: mixamorig:Spine1
|
||||
- first:
|
||||
4: 400050
|
||||
second: mixamorig:Spine2
|
||||
- first:
|
||||
74: 7400000
|
||||
second: Idle
|
||||
- first:
|
||||
95: 9500000
|
||||
second: //RootNode
|
||||
externalObjects: {}
|
||||
materials:
|
||||
materialImportMode: 1
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
motionNodeName:
|
||||
rigImportErrors:
|
||||
rigImportWarnings:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 3
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations:
|
||||
- serializedVersion: 16
|
||||
name: Idle
|
||||
takeName: mixamo.com
|
||||
internalID: 0
|
||||
firstFrame: 0
|
||||
lastFrame: 500
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0.07
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 1
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 0
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 1
|
||||
keepOriginalPositionY: 0
|
||||
keepOriginalPositionXZ: 1
|
||||
heightFromFeet: 1
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events: []
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
fileIdsGeneration: 1
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 0
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 0
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human:
|
||||
- boneName: mixamorig:Hips
|
||||
humanName: Hips
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftUpLeg
|
||||
humanName: LeftUpperLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightUpLeg
|
||||
humanName: RightUpperLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftLeg
|
||||
humanName: LeftLowerLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightLeg
|
||||
humanName: RightLowerLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftFoot
|
||||
humanName: LeftFoot
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightFoot
|
||||
humanName: RightFoot
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine
|
||||
humanName: Spine
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine1
|
||||
humanName: Chest
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Neck
|
||||
humanName: Neck
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Head
|
||||
humanName: Head
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftShoulder
|
||||
humanName: LeftShoulder
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightShoulder
|
||||
humanName: RightShoulder
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftArm
|
||||
humanName: LeftUpperArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightArm
|
||||
humanName: RightUpperArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftForeArm
|
||||
humanName: LeftLowerArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightForeArm
|
||||
humanName: RightLowerArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHand
|
||||
humanName: LeftHand
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHand
|
||||
humanName: RightHand
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftToeBase
|
||||
humanName: LeftToes
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightToeBase
|
||||
humanName: RightToes
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine2
|
||||
humanName: UpperChest
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
skeleton:
|
||||
- name: Backflip(Clone)
|
||||
parentName:
|
||||
position: {x: 0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: humanoidT
|
||||
parentName: Backflip(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: butt
|
||||
parentName: humanoidT
|
||||
position: {x: 0.028619736, y: 1.0587679, z: 0.002142583}
|
||||
rotation: {x: 0.7049101, y: -0.026212664, z: 0.013773171, w: 0.70867836}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: lower_waist
|
||||
parentName: butt
|
||||
position: {x: -0.021319339, y: 0.00040355325, z: -0.16483356}
|
||||
rotation: {x: 0.0031044185, y: 0.0020000096, z: -0.000018799677, w: 0.9999932}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: abdomen_y
|
||||
parentName: lower_waist
|
||||
position: {x: -0.0000723721, y: 0.000012806966, z: -0.0017823265}
|
||||
rotation: {x: 0.00014829637, y: 0.0018769234, z: -0.02827898, w: 0.9995983}
|
||||
scale: {x: 1, y: 1.0000005, z: 1.0000002}
|
||||
- name: upper_waist
|
||||
parentName: lower_waist
|
||||
position: {x: -0.0019383731, y: 0.00014567096, z: -0.14226863}
|
||||
rotation: {x: -0.0004889473, y: 0.007208624, z: -0.028266912, w: 0.9995743}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: torso
|
||||
parentName: upper_waist
|
||||
position: {x: -0.010000003, y: 0, z: -0.12}
|
||||
rotation: {x: -0, y: -0, z: 5.134097e-10, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: head
|
||||
parentName: torso
|
||||
position: {x: 0.00012124982, y: -0.00066340127, z: -0.20378074}
|
||||
rotation: {x: -0.7070211, y: -0.00034404645, z: -0.00035778637, w: 0.70719224}
|
||||
scale: {x: 0.18, y: 0.18000005, z: 0.18000005}
|
||||
- name: left_upper_arm
|
||||
parentName: torso
|
||||
position: {x: -0.00805471, y: -0.3095426, z: -0.046386097}
|
||||
rotation: {x: -0.050138354, y: -0.15586165, z: -0.020825602, w: 0.9862858}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_larm
|
||||
parentName: left_upper_arm
|
||||
position: {x: -0.05012562, y: -0.3203213, z: 0.013551146}
|
||||
rotation: {x: -0.1464947, y: -0.69702035, z: -0.08435819, w: 0.6968398}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_hand
|
||||
parentName: left_larm
|
||||
position: {x: -0.000015493482, y: -0.15598094, z: -0.000019282103}
|
||||
rotation: {x: 0.6276541, y: -0.0002503395, z: 0.628233, w: 0.45975387}
|
||||
scale: {x: 0.08000005, y: 0.08000001, z: 0.08000004}
|
||||
- name: left_shoulder2
|
||||
parentName: left_upper_arm
|
||||
position: {x: 0.023122678, y: 0.03264472, z: 0.08629361}
|
||||
rotation: {x: -0.33152154, y: -0.00000017136335, z: 0.08883171, w: 0.9392563}
|
||||
scale: {x: 1.0000001, y: 1.0000002, z: 1.0000001}
|
||||
- name: right_upper_arm
|
||||
parentName: torso
|
||||
position: {x: -0.0065300968, y: 0.3054909, z: -0.028148612}
|
||||
rotation: {x: 0.9821227, y: 0.0047237636, z: 0.14654115, w: -0.118061}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_larm
|
||||
parentName: right_upper_arm
|
||||
position: {x: -0.05019078, y: -0.32017505, z: -0.013448662}
|
||||
rotation: {x: 0.14644656, y: 0.69692343, z: -0.08455098, w: 0.69692343}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_hand
|
||||
parentName: right_larm
|
||||
position: {x: -0.00003791973, y: -0.15599604, z: 0.00002259016}
|
||||
rotation: {x: -0.6275729, y: 0.0003462434, z: 0.6282862, w: 0.459792}
|
||||
scale: {x: 0.079999946, y: 0.080000006, z: 0.07999995}
|
||||
- name: right_shoulder2
|
||||
parentName: right_upper_arm
|
||||
position: {x: 0.018984409, y: 0.021175496, z: -0.07061822}
|
||||
rotation: {x: 0.26393244, y: -0.0016188326, z: 0.07030048, w: 0.9619745}
|
||||
scale: {x: 1.0000001, y: 1.0000002, z: 1.0000001}
|
||||
- name: Shoulder
|
||||
parentName: torso
|
||||
position: {x: -0.001, y: -0.001, z: -0.075}
|
||||
rotation: {x: 0.001067541, y: -0.707106, z: 0.707106, w: 0.001067541}
|
||||
scale: {x: 0.050000057, y: 0.05000001, z: 0.3}
|
||||
- name: Spine
|
||||
parentName: butt
|
||||
position: {x: -0.033886682, y: 0.0012130737, z: -0.29749244}
|
||||
rotation: {x: 0.010788803, y: -0.0027317873, z: 0.99953836, w: 0.028269844}
|
||||
scale: {x: 0.05000011, y: 0.05000005, z: 0.6000004}
|
||||
- name: left_thigh
|
||||
parentName: humanoidT
|
||||
position: {x: 0.022163205, y: 0.8473689, z: -0.09560348}
|
||||
rotation: {x: -0.008197911, y: -0.008591415, z: 0.024315646, w: 0.99963385}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_hip_y
|
||||
parentName: left_thigh
|
||||
position: {x: -0.00018789193, y: 0.00050958304, z: 0.0037600398}
|
||||
rotation: {x: -0.011198115, y: -0.019681891, z: -0.00040819624, w: 0.9997435}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_hip_z
|
||||
parentName: left_thigh
|
||||
position: {x: 0.000009631686, y: 0.00050954695, z: 0.0037639162}
|
||||
rotation: {x: -0.011199301, y: 0.00007027015, z: -0.00004858979, w: 0.9999373}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_shin
|
||||
parentName: left_thigh
|
||||
position: {x: 0.0069502685, y: -0.38283935, z: -0.006257828}
|
||||
rotation: {x: 0.014698038, y: -0.0003006309, z: 0.020444054, w: 0.9996829}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_left_foot
|
||||
parentName: left_shin
|
||||
position: {x: -0.04318934, y: -0.23842703, z: -0.026194116}
|
||||
rotation: {x: 0.033987474, y: -0.015081191, z: -0.73684585, w: 0.6750375}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_ankle_x
|
||||
parentName: left_left_foot
|
||||
position: {x: 0.0028956856, y: 0.0075475774, z: -0.000414714}
|
||||
rotation: {x: -0.0043921056, y: 0.0034287455, z: 0.046523295, w: 0.99890167}
|
||||
scale: {x: 1.0000002, y: 1.0000002, z: 1}
|
||||
- name: left_right_foot
|
||||
parentName: left_left_foot
|
||||
position: {x: -0.012464729, y: 0.005532327, z: 0.21164574}
|
||||
rotation: {x: 0.0533601, y: 0.06701755, z: -0.0019481222, w: 0.99632204}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: LeftLeg__1_
|
||||
parentName: left_thigh
|
||||
position: {x: -0.040999997, y: -0.30899996, z: 0.19}
|
||||
rotation: {x: 0.009720462, y: 0.71269727, z: -0.7010641, w: -0.02184826}
|
||||
scale: {x: 0.05000017, y: 0.050000105, z: 0.6000013}
|
||||
- name: right_thigh
|
||||
parentName: humanoidT
|
||||
position: {x: 0.010520758, y: 0.84846205, z: 0.09885497}
|
||||
rotation: {x: 0.0074896533, y: -0.027545288, z: 0.022941835, w: 0.9993292}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_hip_y
|
||||
parentName: right_thigh
|
||||
position: {x: 0.000021025491, y: 0.0009465131, z: -0.0013828418}
|
||||
rotation: {x: 0.0036728394, y: -0.00037535836, z: -0.00008118107, w: 0.9999932}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_hip_z
|
||||
parentName: right_thigh
|
||||
position: {x: -0.0000000049330993, y: 0.0000052593314, z: -0.0013360521}
|
||||
rotation: {x: 0.003927878, y: 1.3571037e-25, z: -0.000000013460522, w: 0.9999923}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_shin
|
||||
parentName: right_thigh
|
||||
position: {x: 0.0068513784, y: -0.38295454, z: 0.006241403}
|
||||
rotation: {x: -0.014669814, y: 0.0003177673, z: 0.020145983, w: 0.9996894}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_right_foot
|
||||
parentName: right_shin
|
||||
position: {x: -0.043461975, y: -0.239265, z: 0.02424076}
|
||||
rotation: {x: -0.017235627, y: 0.021577317, z: -0.735891, w: 0.6765366}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_ankle_x
|
||||
parentName: right_right_foot
|
||||
position: {x: 0.0029095989, y: 0.0074111656, z: 0.00041196973}
|
||||
rotation: {x: 0.004348083, y: -0.0036474187, z: 0.04522145, w: 0.9989609}
|
||||
scale: {x: 1.0000002, y: 1.0000002, z: 1}
|
||||
- name: right_left_foot
|
||||
parentName: right_right_foot
|
||||
position: {x: -0.003858014, y: 0.01637404, z: -0.21142484}
|
||||
rotation: {x: -0.0532643, y: -0.0675717, z: -0.0010922394, w: 0.99629104}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: RightLeg
|
||||
parentName: right_thigh
|
||||
position: {x: -0.043, y: -0.316, z: -0.18299998}
|
||||
rotation: {x: 0.004674896, y: -0.701414, z: 0.7119129, w: 0.03430193}
|
||||
scale: {x: 0.05000008, y: 0.05000004, z: 0.6000004}
|
||||
- name: mixamorig:Hips
|
||||
parentName: Backflip(Clone)
|
||||
position: {x: -0.005175761, y: 0.9335466, z: -0.0036196744}
|
||||
rotation: {x: 0.000000008326478, y: 0.71872675, z: -0.000000014373027, w: 0.69529265}
|
||||
scale: {x: 1, y: 1.0000002, z: 1}
|
||||
- name: mixamorig:RightUpLeg
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: -0.008040293, y: -0.05244598, z: 0.10175739}
|
||||
rotation: {x: -0.000096233984, y: -0.007695467, z: 0.99989223, w: -0.012503546}
|
||||
scale: {x: 1.0000052, y: 1.0000025, z: 1}
|
||||
- name: mixamorig:RightLeg
|
||||
parentName: mixamorig:RightUpLeg
|
||||
position: {x: 4.440892e-18, y: 0.4222232, z: 0}
|
||||
rotation: {x: 0.019863136, y: 0.0010614229, z: 0.053350624, w: 0.9983777}
|
||||
scale: {x: 1.0000031, y: 1.0000021, z: 1.0000019}
|
||||
- name: mixamorig:RightFoot
|
||||
parentName: mixamorig:RightLeg
|
||||
position: {x: -0, y: 0.38956782, z: 0}
|
||||
rotation: {x: -0.42334923, y: -0.5705113, z: 0.4392357, w: -0.5498767}
|
||||
scale: {x: 1.0000018, y: 1.0000029, z: 1.0000002}
|
||||
- name: mixamorig:RightToeBase
|
||||
parentName: mixamorig:RightFoot
|
||||
position: {x: -0, y: 0.12412127, z: 7.105427e-17}
|
||||
rotation: {x: -0.20302476, y: 0.0002567768, z: 0.0012378544, w: -0.9791728}
|
||||
scale: {x: 1.0000008, y: 0.9999995, z: 1.0000048}
|
||||
- name: mixamorig:RightToe_End
|
||||
parentName: mixamorig:RightToeBase
|
||||
position: {x: -0, y: 0.060296334, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftUpLeg
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: 0.0035344027, y: -0.05244598, z: -0.10175739}
|
||||
rotation: {x: 0.00008969172, y: 0.007695548, z: 0.9999024, w: -0.011660735}
|
||||
scale: {x: 1.000008, y: 1.0000052, z: 1}
|
||||
- name: mixamorig:LeftLeg
|
||||
parentName: mixamorig:LeftUpLeg
|
||||
position: {x: -0, y: 0.42220598, z: 0}
|
||||
rotation: {x: -0.019789819, y: -0.001283939, z: 0.06472981, w: 0.9977058}
|
||||
scale: {x: 1.0000039, y: 1.000004, z: 1.0000007}
|
||||
- name: mixamorig:LeftFoot
|
||||
parentName: mixamorig:LeftLeg
|
||||
position: {x: -0, y: 0.3907465, z: 0}
|
||||
rotation: {x: 0.45038655, y: 0.54181254, z: -0.4355745, w: 0.5602374}
|
||||
scale: {x: 1.0000029, y: 1.0000026, z: 1.0000019}
|
||||
- name: mixamorig:LeftToeBase
|
||||
parentName: mixamorig:LeftFoot
|
||||
position: {x: -0, y: 0.1308076, z: 0}
|
||||
rotation: {x: 0.19264501, y: 0.00046184653, z: 0.002352476, w: 0.9812656}
|
||||
scale: {x: 1.000001, y: 0.99999976, z: 1.0000021}
|
||||
- name: mixamorig:LeftToe_End
|
||||
parentName: mixamorig:LeftToeBase
|
||||
position: {x: -0, y: 0.061049044, z: -3.5527136e-17}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:Spine
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: -0.0024581861, y: 0.094537124, z: 1.110223e-18}
|
||||
rotation: {x: -0.0000000011847465, y: 0.000000027988655, z: 0.012997864, w: 0.99991554}
|
||||
scale: {x: 1, y: 0.9999999, z: 1}
|
||||
- name: mixamorig:Spine1
|
||||
parentName: mixamorig:Spine
|
||||
position: {x: 8.881784e-18, y: 0.1103307, z: 0}
|
||||
rotation: {x: 0.000000004352489, y: -0.000000046559435, z: 0.000000027008355,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 0.9999999, z: 1}
|
||||
- name: mixamorig:Spine2
|
||||
parentName: mixamorig:Spine1
|
||||
position: {x: 8.881784e-18, y: 0.12609196, z: 0}
|
||||
rotation: {x: 0.000000058169196, y: 0.000000018020504, z: -9.31326e-10, w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001}
|
||||
- name: mixamorig:Neck
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: 0.000000007613613, y: 0.14185366, z: -5.551115e-19}
|
||||
rotation: {x: 0.000000015957266, y: 0.000000016797909, z: -0.012997881, w: 0.99991554}
|
||||
scale: {x: 0.9999999, y: 1, z: 1}
|
||||
- name: mixamorig:Head
|
||||
parentName: mixamorig:Neck
|
||||
position: {x: -0.0008683859, y: 0.053217314, z: 5.551115e-19}
|
||||
rotation: {x: -0.000000007200165, y: 0.0000000015158257, z: -0.000000024214387,
|
||||
w: 1}
|
||||
scale: {x: 1.0000002, y: 1, z: 1.0000004}
|
||||
- name: mixamorig:HeadTop_End
|
||||
parentName: mixamorig:Head
|
||||
position: {x: -0.0022724792, y: 0.13926437, z: 1.110223e-18}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftShoulder
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: 0.00020240633, y: 0.13515088, z: -0.04127286}
|
||||
rotation: {x: -0.0019427737, y: -0.64387274, z: 0.7651283, w: -0.0016816484}
|
||||
scale: {x: 1.0000032, y: 1.0000012, z: 1.0000011}
|
||||
- name: mixamorig:LeftArm
|
||||
parentName: mixamorig:LeftShoulder
|
||||
position: {x: -0, y: 0.0791558, z: 2.842171e-16}
|
||||
rotation: {x: -0.052307434, y: 0.0017309872, z: -0.0049234666, w: 0.9986174}
|
||||
scale: {x: 1.0000021, y: 1.0000029, z: 1.0000021}
|
||||
- name: mixamorig:LeftForeArm
|
||||
parentName: mixamorig:LeftArm
|
||||
position: {x: 4.440892e-18, y: 0.3525264, z: 0}
|
||||
rotation: {x: -0.03167211, y: 0.0079971645, z: -0.016885435, w: 0.9993237}
|
||||
scale: {x: 1.0000007, y: 1.0000013, z: 1.0000008}
|
||||
- name: mixamorig:LeftHand
|
||||
parentName: mixamorig:LeftForeArm
|
||||
position: {x: 1.7763568e-17, y: 0.29053873, z: 0}
|
||||
rotation: {x: -0, y: -2.3283064e-10, z: -1.3096724e-10, w: 1}
|
||||
scale: {x: 1.0000012, y: 1.0000001, z: 0.99999976}
|
||||
- name: mixamorig:RightShoulder
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: -0.0005504584, y: 0.13517044, z: 0.04127286}
|
||||
rotation: {x: 0.7649505, y: -0.004635785, z: 0.005321747, w: 0.6440504}
|
||||
scale: {x: 1.0000002, y: 1.0000006, z: 1.0000019}
|
||||
- name: mixamorig:RightArm
|
||||
parentName: mixamorig:RightShoulder
|
||||
position: {x: -0, y: 0.079155795, z: 0}
|
||||
rotation: {x: -0.04782623, y: -0.0011201247, z: 0.016020544, w: 0.9987266}
|
||||
scale: {x: 0.9999999, y: 1.0000025, z: 1.0000014}
|
||||
- name: mixamorig:RightForeArm
|
||||
parentName: mixamorig:RightArm
|
||||
position: {x: -0, y: 0.3522625, z: 0}
|
||||
rotation: {x: -0.03519323, y: -0.0078160325, z: 0.030223342, w: 0.99889284}
|
||||
scale: {x: 1.0000007, y: 1.0000008, z: 1.0000008}
|
||||
- name: mixamorig:RightHand
|
||||
parentName: mixamorig:RightForeArm
|
||||
position: {x: 8.881784e-18, y: 0.2879794, z: 2.842171e-16}
|
||||
rotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1.0000001, y: 1.0000005, z: 1.0000005}
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
globalScale: 1
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 1
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: fa0773caae34843268db7f12c1421ce5,
|
||||
type: 3}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 3
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 2
|
||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 0
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/MarathonEnvs/Animations/Locomotion Pack/jump.fbx
LFS
Normal file
BIN
Assets/MarathonEnvs/Animations/Locomotion Pack/jump.fbx
LFS
Normal file
Binary file not shown.
705
Assets/MarathonEnvs/Animations/Locomotion Pack/jump.fbx.meta
generated
Normal file
705
Assets/MarathonEnvs/Animations/Locomotion Pack/jump.fbx.meta
generated
Normal file
@@ -0,0 +1,705 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9c569166600d641efacce54b9444fdd9
|
||||
ModelImporter:
|
||||
serializedVersion: 23
|
||||
fileIDToRecycleName:
|
||||
100000: //RootNode
|
||||
100002: mixamorig:Head
|
||||
100004: mixamorig:HeadTop_End
|
||||
100006: mixamorig:Hips
|
||||
100008: mixamorig:LeftArm
|
||||
100010: mixamorig:LeftFoot
|
||||
100012: mixamorig:LeftForeArm
|
||||
100014: mixamorig:LeftHand
|
||||
100016: mixamorig:LeftLeg
|
||||
100018: mixamorig:LeftShoulder
|
||||
100020: mixamorig:LeftToe_End
|
||||
100022: mixamorig:LeftToeBase
|
||||
100024: mixamorig:LeftUpLeg
|
||||
100026: mixamorig:Neck
|
||||
100028: mixamorig:RightArm
|
||||
100030: mixamorig:RightFoot
|
||||
100032: mixamorig:RightForeArm
|
||||
100034: mixamorig:RightHand
|
||||
100036: mixamorig:RightLeg
|
||||
100038: mixamorig:RightShoulder
|
||||
100040: mixamorig:RightToe_End
|
||||
100042: mixamorig:RightToeBase
|
||||
100044: mixamorig:RightUpLeg
|
||||
100046: mixamorig:Spine
|
||||
100048: mixamorig:Spine1
|
||||
100050: mixamorig:Spine2
|
||||
400000: //RootNode
|
||||
400002: mixamorig:Head
|
||||
400004: mixamorig:HeadTop_End
|
||||
400006: mixamorig:Hips
|
||||
400008: mixamorig:LeftArm
|
||||
400010: mixamorig:LeftFoot
|
||||
400012: mixamorig:LeftForeArm
|
||||
400014: mixamorig:LeftHand
|
||||
400016: mixamorig:LeftLeg
|
||||
400018: mixamorig:LeftShoulder
|
||||
400020: mixamorig:LeftToe_End
|
||||
400022: mixamorig:LeftToeBase
|
||||
400024: mixamorig:LeftUpLeg
|
||||
400026: mixamorig:Neck
|
||||
400028: mixamorig:RightArm
|
||||
400030: mixamorig:RightFoot
|
||||
400032: mixamorig:RightForeArm
|
||||
400034: mixamorig:RightHand
|
||||
400036: mixamorig:RightLeg
|
||||
400038: mixamorig:RightShoulder
|
||||
400040: mixamorig:RightToe_End
|
||||
400042: mixamorig:RightToeBase
|
||||
400044: mixamorig:RightUpLeg
|
||||
400046: mixamorig:Spine
|
||||
400048: mixamorig:Spine1
|
||||
400050: mixamorig:Spine2
|
||||
7400000: jump
|
||||
7400002: jumpLaunch
|
||||
7400004: jumpFalling
|
||||
9500000: //RootNode
|
||||
externalObjects: {}
|
||||
materials:
|
||||
importMaterials: 1
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
motionNodeName:
|
||||
rigImportErrors:
|
||||
rigImportWarnings:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 3
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations:
|
||||
- serializedVersion: 16
|
||||
name: jump
|
||||
takeName: mixamo.com
|
||||
firstFrame: 0
|
||||
lastFrame: 130
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0.07
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 0
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 1
|
||||
keepOriginalPositionY: 0
|
||||
keepOriginalPositionXZ: 0
|
||||
heightFromFeet: 1
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events: []
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: jumpLaunch
|
||||
takeName: mixamo.com
|
||||
firstFrame: 53
|
||||
lastFrame: 70
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0.07
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 1
|
||||
loopBlend: 1
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 1
|
||||
keepOriginalOrientation: 0
|
||||
keepOriginalPositionY: 0
|
||||
keepOriginalPositionXZ: 1
|
||||
heightFromFeet: 1
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events: []
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: jumpFalling
|
||||
takeName: mixamo.com
|
||||
firstFrame: 70
|
||||
lastFrame: 86
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0.07
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 0
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 1
|
||||
keepOriginalOrientation: 0
|
||||
keepOriginalPositionY: 0
|
||||
keepOriginalPositionXZ: 1
|
||||
heightFromFeet: 1
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events: []
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
optimizeMeshForGPU: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
preserveHierarchy: 0
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
previousCalculatedGlobalScale: 0.01
|
||||
hasPreviousCalculatedGlobalScale: 1
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
importAnimation: 1
|
||||
copyAvatar: 1
|
||||
humanDescription:
|
||||
serializedVersion: 2
|
||||
human:
|
||||
- boneName: mixamorig:Hips
|
||||
humanName: Hips
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftUpLeg
|
||||
humanName: LeftUpperLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightUpLeg
|
||||
humanName: RightUpperLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftLeg
|
||||
humanName: LeftLowerLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightLeg
|
||||
humanName: RightLowerLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftFoot
|
||||
humanName: LeftFoot
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightFoot
|
||||
humanName: RightFoot
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine
|
||||
humanName: Spine
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine1
|
||||
humanName: Chest
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Neck
|
||||
humanName: Neck
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Head
|
||||
humanName: Head
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftShoulder
|
||||
humanName: LeftShoulder
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightShoulder
|
||||
humanName: RightShoulder
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftArm
|
||||
humanName: LeftUpperArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightArm
|
||||
humanName: RightUpperArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftForeArm
|
||||
humanName: LeftLowerArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightForeArm
|
||||
humanName: RightLowerArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHand
|
||||
humanName: LeftHand
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHand
|
||||
humanName: RightHand
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftToeBase
|
||||
humanName: LeftToes
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightToeBase
|
||||
humanName: RightToes
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine2
|
||||
humanName: UpperChest
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
skeleton:
|
||||
- name: Backflip(Clone)
|
||||
parentName:
|
||||
position: {x: 0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: humanoidT
|
||||
parentName: Backflip(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: butt
|
||||
parentName: humanoidT
|
||||
position: {x: 0.028619736, y: 1.0587679, z: 0.002142583}
|
||||
rotation: {x: 0.7049101, y: -0.026212664, z: 0.013773171, w: 0.70867836}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: lower_waist
|
||||
parentName: butt
|
||||
position: {x: -0.021319339, y: 0.00040355325, z: -0.16483356}
|
||||
rotation: {x: 0.0031044185, y: 0.0020000096, z: -0.000018799677, w: 0.9999932}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: abdomen_y
|
||||
parentName: lower_waist
|
||||
position: {x: -0.0000723721, y: 0.000012806966, z: -0.0017823265}
|
||||
rotation: {x: 0.00014829637, y: 0.0018769234, z: -0.02827898, w: 0.9995983}
|
||||
scale: {x: 1, y: 1.0000005, z: 1.0000002}
|
||||
- name: upper_waist
|
||||
parentName: lower_waist
|
||||
position: {x: -0.0019383731, y: 0.00014567096, z: -0.14226863}
|
||||
rotation: {x: -0.0004889473, y: 0.007208624, z: -0.028266912, w: 0.9995743}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: torso
|
||||
parentName: upper_waist
|
||||
position: {x: -0.010000003, y: 0, z: -0.12}
|
||||
rotation: {x: -0, y: -0, z: 5.134097e-10, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: head
|
||||
parentName: torso
|
||||
position: {x: 0.00012124982, y: -0.00066340127, z: -0.20378074}
|
||||
rotation: {x: -0.7070211, y: -0.00034404645, z: -0.00035778637, w: 0.70719224}
|
||||
scale: {x: 0.18, y: 0.18000005, z: 0.18000005}
|
||||
- name: left_upper_arm
|
||||
parentName: torso
|
||||
position: {x: -0.00805471, y: -0.3095426, z: -0.046386097}
|
||||
rotation: {x: -0.050138354, y: -0.15586165, z: -0.020825602, w: 0.9862858}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_larm
|
||||
parentName: left_upper_arm
|
||||
position: {x: -0.05012562, y: -0.3203213, z: 0.013551146}
|
||||
rotation: {x: -0.1464947, y: -0.69702035, z: -0.08435819, w: 0.6968398}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_hand
|
||||
parentName: left_larm
|
||||
position: {x: -0.000015493482, y: -0.15598094, z: -0.000019282103}
|
||||
rotation: {x: 0.6276541, y: -0.0002503395, z: 0.628233, w: 0.45975387}
|
||||
scale: {x: 0.08000005, y: 0.08000001, z: 0.08000004}
|
||||
- name: left_shoulder2
|
||||
parentName: left_upper_arm
|
||||
position: {x: 0.023122678, y: 0.03264472, z: 0.08629361}
|
||||
rotation: {x: -0.33152154, y: -0.00000017136335, z: 0.08883171, w: 0.9392563}
|
||||
scale: {x: 1.0000001, y: 1.0000002, z: 1.0000001}
|
||||
- name: right_upper_arm
|
||||
parentName: torso
|
||||
position: {x: -0.0065300968, y: 0.3054909, z: -0.028148612}
|
||||
rotation: {x: 0.9821227, y: 0.0047237636, z: 0.14654115, w: -0.118061}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_larm
|
||||
parentName: right_upper_arm
|
||||
position: {x: -0.05019078, y: -0.32017505, z: -0.013448662}
|
||||
rotation: {x: 0.14644656, y: 0.69692343, z: -0.08455098, w: 0.69692343}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_hand
|
||||
parentName: right_larm
|
||||
position: {x: -0.00003791973, y: -0.15599604, z: 0.00002259016}
|
||||
rotation: {x: -0.6275729, y: 0.0003462434, z: 0.6282862, w: 0.459792}
|
||||
scale: {x: 0.079999946, y: 0.080000006, z: 0.07999995}
|
||||
- name: right_shoulder2
|
||||
parentName: right_upper_arm
|
||||
position: {x: 0.018984409, y: 0.021175496, z: -0.07061822}
|
||||
rotation: {x: 0.26393244, y: -0.0016188326, z: 0.07030048, w: 0.9619745}
|
||||
scale: {x: 1.0000001, y: 1.0000002, z: 1.0000001}
|
||||
- name: Shoulder
|
||||
parentName: torso
|
||||
position: {x: -0.001, y: -0.001, z: -0.075}
|
||||
rotation: {x: 0.001067541, y: -0.707106, z: 0.707106, w: 0.001067541}
|
||||
scale: {x: 0.050000057, y: 0.05000001, z: 0.3}
|
||||
- name: Spine
|
||||
parentName: butt
|
||||
position: {x: -0.033886682, y: 0.0012130737, z: -0.29749244}
|
||||
rotation: {x: 0.010788803, y: -0.0027317873, z: 0.99953836, w: 0.028269844}
|
||||
scale: {x: 0.05000011, y: 0.05000005, z: 0.6000004}
|
||||
- name: left_thigh
|
||||
parentName: humanoidT
|
||||
position: {x: 0.022163205, y: 0.8473689, z: -0.09560348}
|
||||
rotation: {x: -0.008197911, y: -0.008591415, z: 0.024315646, w: 0.99963385}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_hip_y
|
||||
parentName: left_thigh
|
||||
position: {x: -0.00018789193, y: 0.00050958304, z: 0.0037600398}
|
||||
rotation: {x: -0.011198115, y: -0.019681891, z: -0.00040819624, w: 0.9997435}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_hip_z
|
||||
parentName: left_thigh
|
||||
position: {x: 0.000009631686, y: 0.00050954695, z: 0.0037639162}
|
||||
rotation: {x: -0.011199301, y: 0.00007027015, z: -0.00004858979, w: 0.9999373}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_shin
|
||||
parentName: left_thigh
|
||||
position: {x: 0.0069502685, y: -0.38283935, z: -0.006257828}
|
||||
rotation: {x: 0.014698038, y: -0.0003006309, z: 0.020444054, w: 0.9996829}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_left_foot
|
||||
parentName: left_shin
|
||||
position: {x: -0.04318934, y: -0.23842703, z: -0.026194116}
|
||||
rotation: {x: 0.033987474, y: -0.015081191, z: -0.73684585, w: 0.6750375}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_ankle_x
|
||||
parentName: left_left_foot
|
||||
position: {x: 0.0028956856, y: 0.0075475774, z: -0.000414714}
|
||||
rotation: {x: -0.0043921056, y: 0.0034287455, z: 0.046523295, w: 0.99890167}
|
||||
scale: {x: 1.0000002, y: 1.0000002, z: 1}
|
||||
- name: left_right_foot
|
||||
parentName: left_left_foot
|
||||
position: {x: -0.012464729, y: 0.005532327, z: 0.21164574}
|
||||
rotation: {x: 0.0533601, y: 0.06701755, z: -0.0019481222, w: 0.99632204}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: LeftLeg__1_
|
||||
parentName: left_thigh
|
||||
position: {x: -0.040999997, y: -0.30899996, z: 0.19}
|
||||
rotation: {x: 0.009720462, y: 0.71269727, z: -0.7010641, w: -0.02184826}
|
||||
scale: {x: 0.05000017, y: 0.050000105, z: 0.6000013}
|
||||
- name: right_thigh
|
||||
parentName: humanoidT
|
||||
position: {x: 0.010520758, y: 0.84846205, z: 0.09885497}
|
||||
rotation: {x: 0.0074896533, y: -0.027545288, z: 0.022941835, w: 0.9993292}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_hip_y
|
||||
parentName: right_thigh
|
||||
position: {x: 0.000021025491, y: 0.0009465131, z: -0.0013828418}
|
||||
rotation: {x: 0.0036728394, y: -0.00037535836, z: -0.00008118107, w: 0.9999932}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_hip_z
|
||||
parentName: right_thigh
|
||||
position: {x: -0.0000000049330993, y: 0.0000052593314, z: -0.0013360521}
|
||||
rotation: {x: 0.003927878, y: 1.3571037e-25, z: -0.000000013460522, w: 0.9999923}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_shin
|
||||
parentName: right_thigh
|
||||
position: {x: 0.0068513784, y: -0.38295454, z: 0.006241403}
|
||||
rotation: {x: -0.014669814, y: 0.0003177673, z: 0.020145983, w: 0.9996894}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_right_foot
|
||||
parentName: right_shin
|
||||
position: {x: -0.043461975, y: -0.239265, z: 0.02424076}
|
||||
rotation: {x: -0.017235627, y: 0.021577317, z: -0.735891, w: 0.6765366}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_ankle_x
|
||||
parentName: right_right_foot
|
||||
position: {x: 0.0029095989, y: 0.0074111656, z: 0.00041196973}
|
||||
rotation: {x: 0.004348083, y: -0.0036474187, z: 0.04522145, w: 0.9989609}
|
||||
scale: {x: 1.0000002, y: 1.0000002, z: 1}
|
||||
- name: right_left_foot
|
||||
parentName: right_right_foot
|
||||
position: {x: -0.003858014, y: 0.01637404, z: -0.21142484}
|
||||
rotation: {x: -0.0532643, y: -0.0675717, z: -0.0010922394, w: 0.99629104}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: RightLeg
|
||||
parentName: right_thigh
|
||||
position: {x: -0.043, y: -0.316, z: -0.18299998}
|
||||
rotation: {x: 0.004674896, y: -0.701414, z: 0.7119129, w: 0.03430193}
|
||||
scale: {x: 0.05000008, y: 0.05000004, z: 0.6000004}
|
||||
- name: mixamorig:Hips
|
||||
parentName: Backflip(Clone)
|
||||
position: {x: -0.005175761, y: 0.9335466, z: -0.0036196744}
|
||||
rotation: {x: 0.000000008326478, y: 0.71872675, z: -0.000000014373027, w: 0.69529265}
|
||||
scale: {x: 1, y: 1.0000002, z: 1}
|
||||
- name: mixamorig:RightUpLeg
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: -0.008040293, y: -0.05244598, z: 0.10175739}
|
||||
rotation: {x: -0.000096233984, y: -0.007695467, z: 0.99989223, w: -0.012503546}
|
||||
scale: {x: 1.0000052, y: 1.0000025, z: 1}
|
||||
- name: mixamorig:RightLeg
|
||||
parentName: mixamorig:RightUpLeg
|
||||
position: {x: 4.440892e-18, y: 0.4222232, z: 0}
|
||||
rotation: {x: 0.019863136, y: 0.0010614229, z: 0.053350624, w: 0.9983777}
|
||||
scale: {x: 1.0000031, y: 1.0000021, z: 1.0000019}
|
||||
- name: mixamorig:RightFoot
|
||||
parentName: mixamorig:RightLeg
|
||||
position: {x: -0, y: 0.38956782, z: 0}
|
||||
rotation: {x: -0.42334923, y: -0.5705113, z: 0.4392357, w: -0.5498767}
|
||||
scale: {x: 1.0000018, y: 1.0000029, z: 1.0000002}
|
||||
- name: mixamorig:RightToeBase
|
||||
parentName: mixamorig:RightFoot
|
||||
position: {x: -0, y: 0.12412127, z: 7.105427e-17}
|
||||
rotation: {x: -0.20302476, y: 0.0002567768, z: 0.0012378544, w: -0.9791728}
|
||||
scale: {x: 1.0000008, y: 0.9999995, z: 1.0000048}
|
||||
- name: mixamorig:RightToe_End
|
||||
parentName: mixamorig:RightToeBase
|
||||
position: {x: -0, y: 0.060296334, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftUpLeg
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: 0.0035344027, y: -0.05244598, z: -0.10175739}
|
||||
rotation: {x: 0.00008969172, y: 0.007695548, z: 0.9999024, w: -0.011660735}
|
||||
scale: {x: 1.000008, y: 1.0000052, z: 1}
|
||||
- name: mixamorig:LeftLeg
|
||||
parentName: mixamorig:LeftUpLeg
|
||||
position: {x: -0, y: 0.42220598, z: 0}
|
||||
rotation: {x: -0.019789819, y: -0.001283939, z: 0.06472981, w: 0.9977058}
|
||||
scale: {x: 1.0000039, y: 1.000004, z: 1.0000007}
|
||||
- name: mixamorig:LeftFoot
|
||||
parentName: mixamorig:LeftLeg
|
||||
position: {x: -0, y: 0.3907465, z: 0}
|
||||
rotation: {x: 0.45038655, y: 0.54181254, z: -0.4355745, w: 0.5602374}
|
||||
scale: {x: 1.0000029, y: 1.0000026, z: 1.0000019}
|
||||
- name: mixamorig:LeftToeBase
|
||||
parentName: mixamorig:LeftFoot
|
||||
position: {x: -0, y: 0.1308076, z: 0}
|
||||
rotation: {x: 0.19264501, y: 0.00046184653, z: 0.002352476, w: 0.9812656}
|
||||
scale: {x: 1.000001, y: 0.99999976, z: 1.0000021}
|
||||
- name: mixamorig:LeftToe_End
|
||||
parentName: mixamorig:LeftToeBase
|
||||
position: {x: -0, y: 0.061049044, z: -3.5527136e-17}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:Spine
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: -0.0024581861, y: 0.094537124, z: 1.110223e-18}
|
||||
rotation: {x: -0.0000000011847465, y: 0.000000027988655, z: 0.012997864, w: 0.99991554}
|
||||
scale: {x: 1, y: 0.9999999, z: 1}
|
||||
- name: mixamorig:Spine1
|
||||
parentName: mixamorig:Spine
|
||||
position: {x: 8.881784e-18, y: 0.1103307, z: 0}
|
||||
rotation: {x: 0.000000004352489, y: -0.000000046559435, z: 0.000000027008355,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 0.9999999, z: 1}
|
||||
- name: mixamorig:Spine2
|
||||
parentName: mixamorig:Spine1
|
||||
position: {x: 8.881784e-18, y: 0.12609196, z: 0}
|
||||
rotation: {x: 0.000000058169196, y: 0.000000018020504, z: -9.31326e-10, w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001}
|
||||
- name: mixamorig:Neck
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: 0.000000007613613, y: 0.14185366, z: -5.551115e-19}
|
||||
rotation: {x: 0.000000015957266, y: 0.000000016797909, z: -0.012997881, w: 0.99991554}
|
||||
scale: {x: 0.9999999, y: 1, z: 1}
|
||||
- name: mixamorig:Head
|
||||
parentName: mixamorig:Neck
|
||||
position: {x: -0.0008683859, y: 0.053217314, z: 5.551115e-19}
|
||||
rotation: {x: -0.000000007200165, y: 0.0000000015158257, z: -0.000000024214387,
|
||||
w: 1}
|
||||
scale: {x: 1.0000002, y: 1, z: 1.0000004}
|
||||
- name: mixamorig:HeadTop_End
|
||||
parentName: mixamorig:Head
|
||||
position: {x: -0.0022724792, y: 0.13926437, z: 1.110223e-18}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftShoulder
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: 0.00020240633, y: 0.13515088, z: -0.04127286}
|
||||
rotation: {x: -0.0019427737, y: -0.64387274, z: 0.7651283, w: -0.0016816484}
|
||||
scale: {x: 1.0000032, y: 1.0000012, z: 1.0000011}
|
||||
- name: mixamorig:LeftArm
|
||||
parentName: mixamorig:LeftShoulder
|
||||
position: {x: -0, y: 0.0791558, z: 2.842171e-16}
|
||||
rotation: {x: -0.052307434, y: 0.0017309872, z: -0.0049234666, w: 0.9986174}
|
||||
scale: {x: 1.0000021, y: 1.0000029, z: 1.0000021}
|
||||
- name: mixamorig:LeftForeArm
|
||||
parentName: mixamorig:LeftArm
|
||||
position: {x: 4.440892e-18, y: 0.3525264, z: 0}
|
||||
rotation: {x: -0.03167211, y: 0.0079971645, z: -0.016885435, w: 0.9993237}
|
||||
scale: {x: 1.0000007, y: 1.0000013, z: 1.0000008}
|
||||
- name: mixamorig:LeftHand
|
||||
parentName: mixamorig:LeftForeArm
|
||||
position: {x: 1.7763568e-17, y: 0.29053873, z: 0}
|
||||
rotation: {x: -0, y: -2.3283064e-10, z: -1.3096724e-10, w: 1}
|
||||
scale: {x: 1.0000012, y: 1.0000001, z: 0.99999976}
|
||||
- name: mixamorig:RightShoulder
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: -0.0005504584, y: 0.13517044, z: 0.04127286}
|
||||
rotation: {x: 0.7649505, y: -0.004635785, z: 0.005321747, w: 0.6440504}
|
||||
scale: {x: 1.0000002, y: 1.0000006, z: 1.0000019}
|
||||
- name: mixamorig:RightArm
|
||||
parentName: mixamorig:RightShoulder
|
||||
position: {x: -0, y: 0.079155795, z: 0}
|
||||
rotation: {x: -0.04782623, y: -0.0011201247, z: 0.016020544, w: 0.9987266}
|
||||
scale: {x: 0.9999999, y: 1.0000025, z: 1.0000014}
|
||||
- name: mixamorig:RightForeArm
|
||||
parentName: mixamorig:RightArm
|
||||
position: {x: -0, y: 0.3522625, z: 0}
|
||||
rotation: {x: -0.03519323, y: -0.0078160325, z: 0.030223342, w: 0.99889284}
|
||||
scale: {x: 1.0000007, y: 1.0000008, z: 1.0000008}
|
||||
- name: mixamorig:RightHand
|
||||
parentName: mixamorig:RightForeArm
|
||||
position: {x: 8.881784e-18, y: 0.2879794, z: 2.842171e-16}
|
||||
rotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1.0000001, y: 1.0000005, z: 1.0000005}
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 1
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: fa0773caae34843268db7f12c1421ce5,
|
||||
type: 3}
|
||||
animationType: 3
|
||||
humanoidOversampling: 1
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/MarathonEnvs/Animations/Locomotion Pack/running.fbx
LFS
Normal file
BIN
Assets/MarathonEnvs/Animations/Locomotion Pack/running.fbx
LFS
Normal file
Binary file not shown.
647
Assets/MarathonEnvs/Animations/Locomotion Pack/running.fbx.meta
generated
Normal file
647
Assets/MarathonEnvs/Animations/Locomotion Pack/running.fbx.meta
generated
Normal file
@@ -0,0 +1,647 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7cebe89af92024b3aa1f5ca92436b252
|
||||
ModelImporter:
|
||||
serializedVersion: 23
|
||||
fileIDToRecycleName:
|
||||
100000: mixamorig:Head
|
||||
100002: mixamorig:HeadTop_End
|
||||
100004: mixamorig:Hips
|
||||
100006: mixamorig:LeftArm
|
||||
100008: mixamorig:LeftFoot
|
||||
100010: mixamorig:LeftForeArm
|
||||
100012: mixamorig:LeftHand
|
||||
100014: mixamorig:LeftLeg
|
||||
100016: mixamorig:LeftShoulder
|
||||
100018: mixamorig:LeftToe_End
|
||||
100020: mixamorig:LeftToeBase
|
||||
100022: mixamorig:LeftUpLeg
|
||||
100024: mixamorig:Neck
|
||||
100026: mixamorig:RightArm
|
||||
100028: mixamorig:RightFoot
|
||||
100030: mixamorig:RightForeArm
|
||||
100032: mixamorig:RightHand
|
||||
100034: mixamorig:RightLeg
|
||||
100036: mixamorig:RightShoulder
|
||||
100038: mixamorig:RightToe_End
|
||||
100040: mixamorig:RightToeBase
|
||||
100042: mixamorig:RightUpLeg
|
||||
100044: mixamorig:Spine
|
||||
100046: mixamorig:Spine1
|
||||
100048: mixamorig:Spine2
|
||||
100050: //RootNode
|
||||
400000: mixamorig:Head
|
||||
400002: mixamorig:HeadTop_End
|
||||
400004: mixamorig:Hips
|
||||
400006: mixamorig:LeftArm
|
||||
400008: mixamorig:LeftFoot
|
||||
400010: mixamorig:LeftForeArm
|
||||
400012: mixamorig:LeftHand
|
||||
400014: mixamorig:LeftLeg
|
||||
400016: mixamorig:LeftShoulder
|
||||
400018: mixamorig:LeftToe_End
|
||||
400020: mixamorig:LeftToeBase
|
||||
400022: mixamorig:LeftUpLeg
|
||||
400024: mixamorig:Neck
|
||||
400026: mixamorig:RightArm
|
||||
400028: mixamorig:RightFoot
|
||||
400030: mixamorig:RightForeArm
|
||||
400032: mixamorig:RightHand
|
||||
400034: mixamorig:RightLeg
|
||||
400036: mixamorig:RightShoulder
|
||||
400038: mixamorig:RightToe_End
|
||||
400040: mixamorig:RightToeBase
|
||||
400042: mixamorig:RightUpLeg
|
||||
400044: mixamorig:Spine
|
||||
400046: mixamorig:Spine1
|
||||
400048: mixamorig:Spine2
|
||||
400050: //RootNode
|
||||
7400000: running
|
||||
9500000: //RootNode
|
||||
externalObjects: {}
|
||||
materials:
|
||||
importMaterials: 1
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
motionNodeName:
|
||||
rigImportErrors:
|
||||
rigImportWarnings:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 3
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations:
|
||||
- serializedVersion: 16
|
||||
name: running
|
||||
takeName: mixamo.com
|
||||
firstFrame: 0
|
||||
lastFrame: 42
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0.07
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 1
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 1
|
||||
keepOriginalPositionY: 0
|
||||
keepOriginalPositionXZ: 1
|
||||
heightFromFeet: 1
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events: []
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
optimizeMeshForGPU: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
preserveHierarchy: 0
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
previousCalculatedGlobalScale: 0.01
|
||||
hasPreviousCalculatedGlobalScale: 1
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
importAnimation: 1
|
||||
copyAvatar: 1
|
||||
humanDescription:
|
||||
serializedVersion: 2
|
||||
human:
|
||||
- boneName: mixamorig:Hips
|
||||
humanName: Hips
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftUpLeg
|
||||
humanName: LeftUpperLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightUpLeg
|
||||
humanName: RightUpperLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftLeg
|
||||
humanName: LeftLowerLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightLeg
|
||||
humanName: RightLowerLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftFoot
|
||||
humanName: LeftFoot
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightFoot
|
||||
humanName: RightFoot
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine
|
||||
humanName: Spine
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine1
|
||||
humanName: Chest
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Neck
|
||||
humanName: Neck
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Head
|
||||
humanName: Head
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftShoulder
|
||||
humanName: LeftShoulder
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightShoulder
|
||||
humanName: RightShoulder
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftArm
|
||||
humanName: LeftUpperArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightArm
|
||||
humanName: RightUpperArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftForeArm
|
||||
humanName: LeftLowerArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightForeArm
|
||||
humanName: RightLowerArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHand
|
||||
humanName: LeftHand
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHand
|
||||
humanName: RightHand
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftToeBase
|
||||
humanName: LeftToes
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightToeBase
|
||||
humanName: RightToes
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine2
|
||||
humanName: UpperChest
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
skeleton:
|
||||
- name: Backflip(Clone)
|
||||
parentName:
|
||||
position: {x: 0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: humanoidT
|
||||
parentName: Backflip(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: butt
|
||||
parentName: humanoidT
|
||||
position: {x: 0.028619736, y: 1.0587679, z: 0.002142583}
|
||||
rotation: {x: 0.7049101, y: -0.026212664, z: 0.013773171, w: 0.70867836}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: lower_waist
|
||||
parentName: butt
|
||||
position: {x: -0.021319339, y: 0.00040355325, z: -0.16483356}
|
||||
rotation: {x: 0.0031044185, y: 0.0020000096, z: -0.000018799677, w: 0.9999932}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: abdomen_y
|
||||
parentName: lower_waist
|
||||
position: {x: -0.0000723721, y: 0.000012806966, z: -0.0017823265}
|
||||
rotation: {x: 0.00014829637, y: 0.0018769234, z: -0.02827898, w: 0.9995983}
|
||||
scale: {x: 1, y: 1.0000005, z: 1.0000002}
|
||||
- name: upper_waist
|
||||
parentName: lower_waist
|
||||
position: {x: -0.0019383731, y: 0.00014567096, z: -0.14226863}
|
||||
rotation: {x: -0.0004889473, y: 0.007208624, z: -0.028266912, w: 0.9995743}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: torso
|
||||
parentName: upper_waist
|
||||
position: {x: -0.010000003, y: 0, z: -0.12}
|
||||
rotation: {x: -0, y: -0, z: 5.134097e-10, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: head
|
||||
parentName: torso
|
||||
position: {x: 0.00012124982, y: -0.00066340127, z: -0.20378074}
|
||||
rotation: {x: -0.7070211, y: -0.00034404645, z: -0.00035778637, w: 0.70719224}
|
||||
scale: {x: 0.18, y: 0.18000005, z: 0.18000005}
|
||||
- name: left_upper_arm
|
||||
parentName: torso
|
||||
position: {x: -0.00805471, y: -0.3095426, z: -0.046386097}
|
||||
rotation: {x: -0.050138354, y: -0.15586165, z: -0.020825602, w: 0.9862858}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_larm
|
||||
parentName: left_upper_arm
|
||||
position: {x: -0.05012562, y: -0.3203213, z: 0.013551146}
|
||||
rotation: {x: -0.1464947, y: -0.69702035, z: -0.08435819, w: 0.6968398}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_hand
|
||||
parentName: left_larm
|
||||
position: {x: -0.000015493482, y: -0.15598094, z: -0.000019282103}
|
||||
rotation: {x: 0.6276541, y: -0.0002503395, z: 0.628233, w: 0.45975387}
|
||||
scale: {x: 0.08000005, y: 0.08000001, z: 0.08000004}
|
||||
- name: left_shoulder2
|
||||
parentName: left_upper_arm
|
||||
position: {x: 0.023122678, y: 0.03264472, z: 0.08629361}
|
||||
rotation: {x: -0.33152154, y: -0.00000017136335, z: 0.08883171, w: 0.9392563}
|
||||
scale: {x: 1.0000001, y: 1.0000002, z: 1.0000001}
|
||||
- name: right_upper_arm
|
||||
parentName: torso
|
||||
position: {x: -0.0065300968, y: 0.3054909, z: -0.028148612}
|
||||
rotation: {x: 0.9821227, y: 0.0047237636, z: 0.14654115, w: -0.118061}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_larm
|
||||
parentName: right_upper_arm
|
||||
position: {x: -0.05019078, y: -0.32017505, z: -0.013448662}
|
||||
rotation: {x: 0.14644656, y: 0.69692343, z: -0.08455098, w: 0.69692343}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_hand
|
||||
parentName: right_larm
|
||||
position: {x: -0.00003791973, y: -0.15599604, z: 0.00002259016}
|
||||
rotation: {x: -0.6275729, y: 0.0003462434, z: 0.6282862, w: 0.459792}
|
||||
scale: {x: 0.079999946, y: 0.080000006, z: 0.07999995}
|
||||
- name: right_shoulder2
|
||||
parentName: right_upper_arm
|
||||
position: {x: 0.018984409, y: 0.021175496, z: -0.07061822}
|
||||
rotation: {x: 0.26393244, y: -0.0016188326, z: 0.07030048, w: 0.9619745}
|
||||
scale: {x: 1.0000001, y: 1.0000002, z: 1.0000001}
|
||||
- name: Shoulder
|
||||
parentName: torso
|
||||
position: {x: -0.001, y: -0.001, z: -0.075}
|
||||
rotation: {x: 0.001067541, y: -0.707106, z: 0.707106, w: 0.001067541}
|
||||
scale: {x: 0.050000057, y: 0.05000001, z: 0.3}
|
||||
- name: Spine
|
||||
parentName: butt
|
||||
position: {x: -0.033886682, y: 0.0012130737, z: -0.29749244}
|
||||
rotation: {x: 0.010788803, y: -0.0027317873, z: 0.99953836, w: 0.028269844}
|
||||
scale: {x: 0.05000011, y: 0.05000005, z: 0.6000004}
|
||||
- name: left_thigh
|
||||
parentName: humanoidT
|
||||
position: {x: 0.022163205, y: 0.8473689, z: -0.09560348}
|
||||
rotation: {x: -0.008197911, y: -0.008591415, z: 0.024315646, w: 0.99963385}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_hip_y
|
||||
parentName: left_thigh
|
||||
position: {x: -0.00018789193, y: 0.00050958304, z: 0.0037600398}
|
||||
rotation: {x: -0.011198115, y: -0.019681891, z: -0.00040819624, w: 0.9997435}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_hip_z
|
||||
parentName: left_thigh
|
||||
position: {x: 0.000009631686, y: 0.00050954695, z: 0.0037639162}
|
||||
rotation: {x: -0.011199301, y: 0.00007027015, z: -0.00004858979, w: 0.9999373}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_shin
|
||||
parentName: left_thigh
|
||||
position: {x: 0.0069502685, y: -0.38283935, z: -0.006257828}
|
||||
rotation: {x: 0.014698038, y: -0.0003006309, z: 0.020444054, w: 0.9996829}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_left_foot
|
||||
parentName: left_shin
|
||||
position: {x: -0.04318934, y: -0.23842703, z: -0.026194116}
|
||||
rotation: {x: 0.033987474, y: -0.015081191, z: -0.73684585, w: 0.6750375}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_ankle_x
|
||||
parentName: left_left_foot
|
||||
position: {x: 0.0028956856, y: 0.0075475774, z: -0.000414714}
|
||||
rotation: {x: -0.0043921056, y: 0.0034287455, z: 0.046523295, w: 0.99890167}
|
||||
scale: {x: 1.0000002, y: 1.0000002, z: 1}
|
||||
- name: left_right_foot
|
||||
parentName: left_left_foot
|
||||
position: {x: -0.012464729, y: 0.005532327, z: 0.21164574}
|
||||
rotation: {x: 0.0533601, y: 0.06701755, z: -0.0019481222, w: 0.99632204}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: LeftLeg__1_
|
||||
parentName: left_thigh
|
||||
position: {x: -0.040999997, y: -0.30899996, z: 0.19}
|
||||
rotation: {x: 0.009720462, y: 0.71269727, z: -0.7010641, w: -0.02184826}
|
||||
scale: {x: 0.05000017, y: 0.050000105, z: 0.6000013}
|
||||
- name: right_thigh
|
||||
parentName: humanoidT
|
||||
position: {x: 0.010520758, y: 0.84846205, z: 0.09885497}
|
||||
rotation: {x: 0.0074896533, y: -0.027545288, z: 0.022941835, w: 0.9993292}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_hip_y
|
||||
parentName: right_thigh
|
||||
position: {x: 0.000021025491, y: 0.0009465131, z: -0.0013828418}
|
||||
rotation: {x: 0.0036728394, y: -0.00037535836, z: -0.00008118107, w: 0.9999932}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_hip_z
|
||||
parentName: right_thigh
|
||||
position: {x: -0.0000000049330993, y: 0.0000052593314, z: -0.0013360521}
|
||||
rotation: {x: 0.003927878, y: 1.3571037e-25, z: -0.000000013460522, w: 0.9999923}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_shin
|
||||
parentName: right_thigh
|
||||
position: {x: 0.0068513784, y: -0.38295454, z: 0.006241403}
|
||||
rotation: {x: -0.014669814, y: 0.0003177673, z: 0.020145983, w: 0.9996894}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_right_foot
|
||||
parentName: right_shin
|
||||
position: {x: -0.043461975, y: -0.239265, z: 0.02424076}
|
||||
rotation: {x: -0.017235627, y: 0.021577317, z: -0.735891, w: 0.6765366}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_ankle_x
|
||||
parentName: right_right_foot
|
||||
position: {x: 0.0029095989, y: 0.0074111656, z: 0.00041196973}
|
||||
rotation: {x: 0.004348083, y: -0.0036474187, z: 0.04522145, w: 0.9989609}
|
||||
scale: {x: 1.0000002, y: 1.0000002, z: 1}
|
||||
- name: right_left_foot
|
||||
parentName: right_right_foot
|
||||
position: {x: -0.003858014, y: 0.01637404, z: -0.21142484}
|
||||
rotation: {x: -0.0532643, y: -0.0675717, z: -0.0010922394, w: 0.99629104}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: RightLeg
|
||||
parentName: right_thigh
|
||||
position: {x: -0.043, y: -0.316, z: -0.18299998}
|
||||
rotation: {x: 0.004674896, y: -0.701414, z: 0.7119129, w: 0.03430193}
|
||||
scale: {x: 0.05000008, y: 0.05000004, z: 0.6000004}
|
||||
- name: mixamorig:Hips
|
||||
parentName: Backflip(Clone)
|
||||
position: {x: -0.005175761, y: 0.9335466, z: -0.0036196744}
|
||||
rotation: {x: 0.000000008326478, y: 0.71872675, z: -0.000000014373027, w: 0.69529265}
|
||||
scale: {x: 1, y: 1.0000002, z: 1}
|
||||
- name: mixamorig:RightUpLeg
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: -0.008040293, y: -0.05244598, z: 0.10175739}
|
||||
rotation: {x: -0.000096233984, y: -0.007695467, z: 0.99989223, w: -0.012503546}
|
||||
scale: {x: 1.0000052, y: 1.0000025, z: 1}
|
||||
- name: mixamorig:RightLeg
|
||||
parentName: mixamorig:RightUpLeg
|
||||
position: {x: 4.440892e-18, y: 0.4222232, z: 0}
|
||||
rotation: {x: 0.019863136, y: 0.0010614229, z: 0.053350624, w: 0.9983777}
|
||||
scale: {x: 1.0000031, y: 1.0000021, z: 1.0000019}
|
||||
- name: mixamorig:RightFoot
|
||||
parentName: mixamorig:RightLeg
|
||||
position: {x: -0, y: 0.38956782, z: 0}
|
||||
rotation: {x: -0.42334923, y: -0.5705113, z: 0.4392357, w: -0.5498767}
|
||||
scale: {x: 1.0000018, y: 1.0000029, z: 1.0000002}
|
||||
- name: mixamorig:RightToeBase
|
||||
parentName: mixamorig:RightFoot
|
||||
position: {x: -0, y: 0.12412127, z: 7.105427e-17}
|
||||
rotation: {x: -0.20302476, y: 0.0002567768, z: 0.0012378544, w: -0.9791728}
|
||||
scale: {x: 1.0000008, y: 0.9999995, z: 1.0000048}
|
||||
- name: mixamorig:RightToe_End
|
||||
parentName: mixamorig:RightToeBase
|
||||
position: {x: -0, y: 0.060296334, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftUpLeg
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: 0.0035344027, y: -0.05244598, z: -0.10175739}
|
||||
rotation: {x: 0.00008969172, y: 0.007695548, z: 0.9999024, w: -0.011660735}
|
||||
scale: {x: 1.000008, y: 1.0000052, z: 1}
|
||||
- name: mixamorig:LeftLeg
|
||||
parentName: mixamorig:LeftUpLeg
|
||||
position: {x: -0, y: 0.42220598, z: 0}
|
||||
rotation: {x: -0.019789819, y: -0.001283939, z: 0.06472981, w: 0.9977058}
|
||||
scale: {x: 1.0000039, y: 1.000004, z: 1.0000007}
|
||||
- name: mixamorig:LeftFoot
|
||||
parentName: mixamorig:LeftLeg
|
||||
position: {x: -0, y: 0.3907465, z: 0}
|
||||
rotation: {x: 0.45038655, y: 0.54181254, z: -0.4355745, w: 0.5602374}
|
||||
scale: {x: 1.0000029, y: 1.0000026, z: 1.0000019}
|
||||
- name: mixamorig:LeftToeBase
|
||||
parentName: mixamorig:LeftFoot
|
||||
position: {x: -0, y: 0.1308076, z: 0}
|
||||
rotation: {x: 0.19264501, y: 0.00046184653, z: 0.002352476, w: 0.9812656}
|
||||
scale: {x: 1.000001, y: 0.99999976, z: 1.0000021}
|
||||
- name: mixamorig:LeftToe_End
|
||||
parentName: mixamorig:LeftToeBase
|
||||
position: {x: -0, y: 0.061049044, z: -3.5527136e-17}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:Spine
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: -0.0024581861, y: 0.094537124, z: 1.110223e-18}
|
||||
rotation: {x: -0.0000000011847465, y: 0.000000027988655, z: 0.012997864, w: 0.99991554}
|
||||
scale: {x: 1, y: 0.9999999, z: 1}
|
||||
- name: mixamorig:Spine1
|
||||
parentName: mixamorig:Spine
|
||||
position: {x: 8.881784e-18, y: 0.1103307, z: 0}
|
||||
rotation: {x: 0.000000004352489, y: -0.000000046559435, z: 0.000000027008355,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 0.9999999, z: 1}
|
||||
- name: mixamorig:Spine2
|
||||
parentName: mixamorig:Spine1
|
||||
position: {x: 8.881784e-18, y: 0.12609196, z: 0}
|
||||
rotation: {x: 0.000000058169196, y: 0.000000018020504, z: -9.31326e-10, w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001}
|
||||
- name: mixamorig:Neck
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: 0.000000007613613, y: 0.14185366, z: -5.551115e-19}
|
||||
rotation: {x: 0.000000015957266, y: 0.000000016797909, z: -0.012997881, w: 0.99991554}
|
||||
scale: {x: 0.9999999, y: 1, z: 1}
|
||||
- name: mixamorig:Head
|
||||
parentName: mixamorig:Neck
|
||||
position: {x: -0.0008683859, y: 0.053217314, z: 5.551115e-19}
|
||||
rotation: {x: -0.000000007200165, y: 0.0000000015158257, z: -0.000000024214387,
|
||||
w: 1}
|
||||
scale: {x: 1.0000002, y: 1, z: 1.0000004}
|
||||
- name: mixamorig:HeadTop_End
|
||||
parentName: mixamorig:Head
|
||||
position: {x: -0.0022724792, y: 0.13926437, z: 1.110223e-18}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftShoulder
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: 0.00020240633, y: 0.13515088, z: -0.04127286}
|
||||
rotation: {x: -0.0019427737, y: -0.64387274, z: 0.7651283, w: -0.0016816484}
|
||||
scale: {x: 1.0000032, y: 1.0000012, z: 1.0000011}
|
||||
- name: mixamorig:LeftArm
|
||||
parentName: mixamorig:LeftShoulder
|
||||
position: {x: -0, y: 0.0791558, z: 2.842171e-16}
|
||||
rotation: {x: -0.052307434, y: 0.0017309872, z: -0.0049234666, w: 0.9986174}
|
||||
scale: {x: 1.0000021, y: 1.0000029, z: 1.0000021}
|
||||
- name: mixamorig:LeftForeArm
|
||||
parentName: mixamorig:LeftArm
|
||||
position: {x: 4.440892e-18, y: 0.3525264, z: 0}
|
||||
rotation: {x: -0.03167211, y: 0.0079971645, z: -0.016885435, w: 0.9993237}
|
||||
scale: {x: 1.0000007, y: 1.0000013, z: 1.0000008}
|
||||
- name: mixamorig:LeftHand
|
||||
parentName: mixamorig:LeftForeArm
|
||||
position: {x: 1.7763568e-17, y: 0.29053873, z: 0}
|
||||
rotation: {x: -0, y: -2.3283064e-10, z: -1.3096724e-10, w: 1}
|
||||
scale: {x: 1.0000012, y: 1.0000001, z: 0.99999976}
|
||||
- name: mixamorig:RightShoulder
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: -0.0005504584, y: 0.13517044, z: 0.04127286}
|
||||
rotation: {x: 0.7649505, y: -0.004635785, z: 0.005321747, w: 0.6440504}
|
||||
scale: {x: 1.0000002, y: 1.0000006, z: 1.0000019}
|
||||
- name: mixamorig:RightArm
|
||||
parentName: mixamorig:RightShoulder
|
||||
position: {x: -0, y: 0.079155795, z: 0}
|
||||
rotation: {x: -0.04782623, y: -0.0011201247, z: 0.016020544, w: 0.9987266}
|
||||
scale: {x: 0.9999999, y: 1.0000025, z: 1.0000014}
|
||||
- name: mixamorig:RightForeArm
|
||||
parentName: mixamorig:RightArm
|
||||
position: {x: -0, y: 0.3522625, z: 0}
|
||||
rotation: {x: -0.03519323, y: -0.0078160325, z: 0.030223342, w: 0.99889284}
|
||||
scale: {x: 1.0000007, y: 1.0000008, z: 1.0000008}
|
||||
- name: mixamorig:RightHand
|
||||
parentName: mixamorig:RightForeArm
|
||||
position: {x: 8.881784e-18, y: 0.2879794, z: 2.842171e-16}
|
||||
rotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1.0000001, y: 1.0000005, z: 1.0000005}
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 1
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: fa0773caae34843268db7f12c1421ce5,
|
||||
type: 3}
|
||||
animationType: 3
|
||||
humanoidOversampling: 1
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/MarathonEnvs/Animations/Locomotion Pack/walking.fbx
LFS
Normal file
BIN
Assets/MarathonEnvs/Animations/Locomotion Pack/walking.fbx
LFS
Normal file
Binary file not shown.
647
Assets/MarathonEnvs/Animations/Locomotion Pack/walking.fbx.meta
generated
Normal file
647
Assets/MarathonEnvs/Animations/Locomotion Pack/walking.fbx.meta
generated
Normal file
@@ -0,0 +1,647 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3cbf7c59af8d94019b750c41a6942bb0
|
||||
ModelImporter:
|
||||
serializedVersion: 23
|
||||
fileIDToRecycleName:
|
||||
100000: mixamorig:Head
|
||||
100002: mixamorig:HeadTop_End
|
||||
100004: mixamorig:Hips
|
||||
100006: mixamorig:LeftArm
|
||||
100008: mixamorig:LeftFoot
|
||||
100010: mixamorig:LeftForeArm
|
||||
100012: mixamorig:LeftHand
|
||||
100014: mixamorig:LeftLeg
|
||||
100016: mixamorig:LeftShoulder
|
||||
100018: mixamorig:LeftToe_End
|
||||
100020: mixamorig:LeftToeBase
|
||||
100022: mixamorig:LeftUpLeg
|
||||
100024: mixamorig:Neck
|
||||
100026: mixamorig:RightArm
|
||||
100028: mixamorig:RightFoot
|
||||
100030: mixamorig:RightForeArm
|
||||
100032: mixamorig:RightHand
|
||||
100034: mixamorig:RightLeg
|
||||
100036: mixamorig:RightShoulder
|
||||
100038: mixamorig:RightToe_End
|
||||
100040: mixamorig:RightToeBase
|
||||
100042: mixamorig:RightUpLeg
|
||||
100044: mixamorig:Spine
|
||||
100046: mixamorig:Spine1
|
||||
100048: mixamorig:Spine2
|
||||
100050: //RootNode
|
||||
400000: mixamorig:Head
|
||||
400002: mixamorig:HeadTop_End
|
||||
400004: mixamorig:Hips
|
||||
400006: mixamorig:LeftArm
|
||||
400008: mixamorig:LeftFoot
|
||||
400010: mixamorig:LeftForeArm
|
||||
400012: mixamorig:LeftHand
|
||||
400014: mixamorig:LeftLeg
|
||||
400016: mixamorig:LeftShoulder
|
||||
400018: mixamorig:LeftToe_End
|
||||
400020: mixamorig:LeftToeBase
|
||||
400022: mixamorig:LeftUpLeg
|
||||
400024: mixamorig:Neck
|
||||
400026: mixamorig:RightArm
|
||||
400028: mixamorig:RightFoot
|
||||
400030: mixamorig:RightForeArm
|
||||
400032: mixamorig:RightHand
|
||||
400034: mixamorig:RightLeg
|
||||
400036: mixamorig:RightShoulder
|
||||
400038: mixamorig:RightToe_End
|
||||
400040: mixamorig:RightToeBase
|
||||
400042: mixamorig:RightUpLeg
|
||||
400044: mixamorig:Spine
|
||||
400046: mixamorig:Spine1
|
||||
400048: mixamorig:Spine2
|
||||
400050: //RootNode
|
||||
7400000: walking
|
||||
9500000: //RootNode
|
||||
externalObjects: {}
|
||||
materials:
|
||||
importMaterials: 1
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
motionNodeName:
|
||||
rigImportErrors:
|
||||
rigImportWarnings:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 3
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations:
|
||||
- serializedVersion: 16
|
||||
name: walking
|
||||
takeName: mixamo.com
|
||||
firstFrame: 1
|
||||
lastFrame: 63
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0.07
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 1
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 1
|
||||
keepOriginalPositionY: 0
|
||||
keepOriginalPositionXZ: 1
|
||||
heightFromFeet: 1
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events: []
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 1
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
optimizeMeshForGPU: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
preserveHierarchy: 0
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
previousCalculatedGlobalScale: 0.01
|
||||
hasPreviousCalculatedGlobalScale: 1
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
importAnimation: 1
|
||||
copyAvatar: 1
|
||||
humanDescription:
|
||||
serializedVersion: 2
|
||||
human:
|
||||
- boneName: mixamorig:Hips
|
||||
humanName: Hips
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftUpLeg
|
||||
humanName: LeftUpperLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightUpLeg
|
||||
humanName: RightUpperLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftLeg
|
||||
humanName: LeftLowerLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightLeg
|
||||
humanName: RightLowerLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftFoot
|
||||
humanName: LeftFoot
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightFoot
|
||||
humanName: RightFoot
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine
|
||||
humanName: Spine
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine1
|
||||
humanName: Chest
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Neck
|
||||
humanName: Neck
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Head
|
||||
humanName: Head
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftShoulder
|
||||
humanName: LeftShoulder
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightShoulder
|
||||
humanName: RightShoulder
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftArm
|
||||
humanName: LeftUpperArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightArm
|
||||
humanName: RightUpperArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftForeArm
|
||||
humanName: LeftLowerArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightForeArm
|
||||
humanName: RightLowerArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHand
|
||||
humanName: LeftHand
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHand
|
||||
humanName: RightHand
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftToeBase
|
||||
humanName: LeftToes
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightToeBase
|
||||
humanName: RightToes
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine2
|
||||
humanName: UpperChest
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
skeleton:
|
||||
- name: Backflip(Clone)
|
||||
parentName:
|
||||
position: {x: 0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: humanoidT
|
||||
parentName: Backflip(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: butt
|
||||
parentName: humanoidT
|
||||
position: {x: 0.028619736, y: 1.0587679, z: 0.002142583}
|
||||
rotation: {x: 0.7049101, y: -0.026212664, z: 0.013773171, w: 0.70867836}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: lower_waist
|
||||
parentName: butt
|
||||
position: {x: -0.021319339, y: 0.00040355325, z: -0.16483356}
|
||||
rotation: {x: 0.0031044185, y: 0.0020000096, z: -0.000018799677, w: 0.9999932}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: abdomen_y
|
||||
parentName: lower_waist
|
||||
position: {x: -0.0000723721, y: 0.000012806966, z: -0.0017823265}
|
||||
rotation: {x: 0.00014829637, y: 0.0018769234, z: -0.02827898, w: 0.9995983}
|
||||
scale: {x: 1, y: 1.0000005, z: 1.0000002}
|
||||
- name: upper_waist
|
||||
parentName: lower_waist
|
||||
position: {x: -0.0019383731, y: 0.00014567096, z: -0.14226863}
|
||||
rotation: {x: -0.0004889473, y: 0.007208624, z: -0.028266912, w: 0.9995743}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: torso
|
||||
parentName: upper_waist
|
||||
position: {x: -0.010000003, y: 0, z: -0.12}
|
||||
rotation: {x: -0, y: -0, z: 5.134097e-10, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: head
|
||||
parentName: torso
|
||||
position: {x: 0.00012124982, y: -0.00066340127, z: -0.20378074}
|
||||
rotation: {x: -0.7070211, y: -0.00034404645, z: -0.00035778637, w: 0.70719224}
|
||||
scale: {x: 0.18, y: 0.18000005, z: 0.18000005}
|
||||
- name: left_upper_arm
|
||||
parentName: torso
|
||||
position: {x: -0.00805471, y: -0.3095426, z: -0.046386097}
|
||||
rotation: {x: -0.050138354, y: -0.15586165, z: -0.020825602, w: 0.9862858}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_larm
|
||||
parentName: left_upper_arm
|
||||
position: {x: -0.05012562, y: -0.3203213, z: 0.013551146}
|
||||
rotation: {x: -0.1464947, y: -0.69702035, z: -0.08435819, w: 0.6968398}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_hand
|
||||
parentName: left_larm
|
||||
position: {x: -0.000015493482, y: -0.15598094, z: -0.000019282103}
|
||||
rotation: {x: 0.6276541, y: -0.0002503395, z: 0.628233, w: 0.45975387}
|
||||
scale: {x: 0.08000005, y: 0.08000001, z: 0.08000004}
|
||||
- name: left_shoulder2
|
||||
parentName: left_upper_arm
|
||||
position: {x: 0.023122678, y: 0.03264472, z: 0.08629361}
|
||||
rotation: {x: -0.33152154, y: -0.00000017136335, z: 0.08883171, w: 0.9392563}
|
||||
scale: {x: 1.0000001, y: 1.0000002, z: 1.0000001}
|
||||
- name: right_upper_arm
|
||||
parentName: torso
|
||||
position: {x: -0.0065300968, y: 0.3054909, z: -0.028148612}
|
||||
rotation: {x: 0.9821227, y: 0.0047237636, z: 0.14654115, w: -0.118061}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_larm
|
||||
parentName: right_upper_arm
|
||||
position: {x: -0.05019078, y: -0.32017505, z: -0.013448662}
|
||||
rotation: {x: 0.14644656, y: 0.69692343, z: -0.08455098, w: 0.69692343}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_hand
|
||||
parentName: right_larm
|
||||
position: {x: -0.00003791973, y: -0.15599604, z: 0.00002259016}
|
||||
rotation: {x: -0.6275729, y: 0.0003462434, z: 0.6282862, w: 0.459792}
|
||||
scale: {x: 0.079999946, y: 0.080000006, z: 0.07999995}
|
||||
- name: right_shoulder2
|
||||
parentName: right_upper_arm
|
||||
position: {x: 0.018984409, y: 0.021175496, z: -0.07061822}
|
||||
rotation: {x: 0.26393244, y: -0.0016188326, z: 0.07030048, w: 0.9619745}
|
||||
scale: {x: 1.0000001, y: 1.0000002, z: 1.0000001}
|
||||
- name: Shoulder
|
||||
parentName: torso
|
||||
position: {x: -0.001, y: -0.001, z: -0.075}
|
||||
rotation: {x: 0.001067541, y: -0.707106, z: 0.707106, w: 0.001067541}
|
||||
scale: {x: 0.050000057, y: 0.05000001, z: 0.3}
|
||||
- name: Spine
|
||||
parentName: butt
|
||||
position: {x: -0.033886682, y: 0.0012130737, z: -0.29749244}
|
||||
rotation: {x: 0.010788803, y: -0.0027317873, z: 0.99953836, w: 0.028269844}
|
||||
scale: {x: 0.05000011, y: 0.05000005, z: 0.6000004}
|
||||
- name: left_thigh
|
||||
parentName: humanoidT
|
||||
position: {x: 0.022163205, y: 0.8473689, z: -0.09560348}
|
||||
rotation: {x: -0.008197911, y: -0.008591415, z: 0.024315646, w: 0.99963385}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_hip_y
|
||||
parentName: left_thigh
|
||||
position: {x: -0.00018789193, y: 0.00050958304, z: 0.0037600398}
|
||||
rotation: {x: -0.011198115, y: -0.019681891, z: -0.00040819624, w: 0.9997435}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_hip_z
|
||||
parentName: left_thigh
|
||||
position: {x: 0.000009631686, y: 0.00050954695, z: 0.0037639162}
|
||||
rotation: {x: -0.011199301, y: 0.00007027015, z: -0.00004858979, w: 0.9999373}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_shin
|
||||
parentName: left_thigh
|
||||
position: {x: 0.0069502685, y: -0.38283935, z: -0.006257828}
|
||||
rotation: {x: 0.014698038, y: -0.0003006309, z: 0.020444054, w: 0.9996829}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_left_foot
|
||||
parentName: left_shin
|
||||
position: {x: -0.04318934, y: -0.23842703, z: -0.026194116}
|
||||
rotation: {x: 0.033987474, y: -0.015081191, z: -0.73684585, w: 0.6750375}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_ankle_x
|
||||
parentName: left_left_foot
|
||||
position: {x: 0.0028956856, y: 0.0075475774, z: -0.000414714}
|
||||
rotation: {x: -0.0043921056, y: 0.0034287455, z: 0.046523295, w: 0.99890167}
|
||||
scale: {x: 1.0000002, y: 1.0000002, z: 1}
|
||||
- name: left_right_foot
|
||||
parentName: left_left_foot
|
||||
position: {x: -0.012464729, y: 0.005532327, z: 0.21164574}
|
||||
rotation: {x: 0.0533601, y: 0.06701755, z: -0.0019481222, w: 0.99632204}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: LeftLeg__1_
|
||||
parentName: left_thigh
|
||||
position: {x: -0.040999997, y: -0.30899996, z: 0.19}
|
||||
rotation: {x: 0.009720462, y: 0.71269727, z: -0.7010641, w: -0.02184826}
|
||||
scale: {x: 0.05000017, y: 0.050000105, z: 0.6000013}
|
||||
- name: right_thigh
|
||||
parentName: humanoidT
|
||||
position: {x: 0.010520758, y: 0.84846205, z: 0.09885497}
|
||||
rotation: {x: 0.0074896533, y: -0.027545288, z: 0.022941835, w: 0.9993292}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_hip_y
|
||||
parentName: right_thigh
|
||||
position: {x: 0.000021025491, y: 0.0009465131, z: -0.0013828418}
|
||||
rotation: {x: 0.0036728394, y: -0.00037535836, z: -0.00008118107, w: 0.9999932}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_hip_z
|
||||
parentName: right_thigh
|
||||
position: {x: -0.0000000049330993, y: 0.0000052593314, z: -0.0013360521}
|
||||
rotation: {x: 0.003927878, y: 1.3571037e-25, z: -0.000000013460522, w: 0.9999923}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_shin
|
||||
parentName: right_thigh
|
||||
position: {x: 0.0068513784, y: -0.38295454, z: 0.006241403}
|
||||
rotation: {x: -0.014669814, y: 0.0003177673, z: 0.020145983, w: 0.9996894}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_right_foot
|
||||
parentName: right_shin
|
||||
position: {x: -0.043461975, y: -0.239265, z: 0.02424076}
|
||||
rotation: {x: -0.017235627, y: 0.021577317, z: -0.735891, w: 0.6765366}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_ankle_x
|
||||
parentName: right_right_foot
|
||||
position: {x: 0.0029095989, y: 0.0074111656, z: 0.00041196973}
|
||||
rotation: {x: 0.004348083, y: -0.0036474187, z: 0.04522145, w: 0.9989609}
|
||||
scale: {x: 1.0000002, y: 1.0000002, z: 1}
|
||||
- name: right_left_foot
|
||||
parentName: right_right_foot
|
||||
position: {x: -0.003858014, y: 0.01637404, z: -0.21142484}
|
||||
rotation: {x: -0.0532643, y: -0.0675717, z: -0.0010922394, w: 0.99629104}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: RightLeg
|
||||
parentName: right_thigh
|
||||
position: {x: -0.043, y: -0.316, z: -0.18299998}
|
||||
rotation: {x: 0.004674896, y: -0.701414, z: 0.7119129, w: 0.03430193}
|
||||
scale: {x: 0.05000008, y: 0.05000004, z: 0.6000004}
|
||||
- name: mixamorig:Hips
|
||||
parentName: Backflip(Clone)
|
||||
position: {x: -0.005175761, y: 0.9335466, z: -0.0036196744}
|
||||
rotation: {x: 0.000000008326478, y: 0.71872675, z: -0.000000014373027, w: 0.69529265}
|
||||
scale: {x: 1, y: 1.0000002, z: 1}
|
||||
- name: mixamorig:RightUpLeg
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: -0.008040293, y: -0.05244598, z: 0.10175739}
|
||||
rotation: {x: -0.000096233984, y: -0.007695467, z: 0.99989223, w: -0.012503546}
|
||||
scale: {x: 1.0000052, y: 1.0000025, z: 1}
|
||||
- name: mixamorig:RightLeg
|
||||
parentName: mixamorig:RightUpLeg
|
||||
position: {x: 4.440892e-18, y: 0.4222232, z: 0}
|
||||
rotation: {x: 0.019863136, y: 0.0010614229, z: 0.053350624, w: 0.9983777}
|
||||
scale: {x: 1.0000031, y: 1.0000021, z: 1.0000019}
|
||||
- name: mixamorig:RightFoot
|
||||
parentName: mixamorig:RightLeg
|
||||
position: {x: -0, y: 0.38956782, z: 0}
|
||||
rotation: {x: -0.42334923, y: -0.5705113, z: 0.4392357, w: -0.5498767}
|
||||
scale: {x: 1.0000018, y: 1.0000029, z: 1.0000002}
|
||||
- name: mixamorig:RightToeBase
|
||||
parentName: mixamorig:RightFoot
|
||||
position: {x: -0, y: 0.12412127, z: 7.105427e-17}
|
||||
rotation: {x: -0.20302476, y: 0.0002567768, z: 0.0012378544, w: -0.9791728}
|
||||
scale: {x: 1.0000008, y: 0.9999995, z: 1.0000048}
|
||||
- name: mixamorig:RightToe_End
|
||||
parentName: mixamorig:RightToeBase
|
||||
position: {x: -0, y: 0.060296334, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftUpLeg
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: 0.0035344027, y: -0.05244598, z: -0.10175739}
|
||||
rotation: {x: 0.00008969172, y: 0.007695548, z: 0.9999024, w: -0.011660735}
|
||||
scale: {x: 1.000008, y: 1.0000052, z: 1}
|
||||
- name: mixamorig:LeftLeg
|
||||
parentName: mixamorig:LeftUpLeg
|
||||
position: {x: -0, y: 0.42220598, z: 0}
|
||||
rotation: {x: -0.019789819, y: -0.001283939, z: 0.06472981, w: 0.9977058}
|
||||
scale: {x: 1.0000039, y: 1.000004, z: 1.0000007}
|
||||
- name: mixamorig:LeftFoot
|
||||
parentName: mixamorig:LeftLeg
|
||||
position: {x: -0, y: 0.3907465, z: 0}
|
||||
rotation: {x: 0.45038655, y: 0.54181254, z: -0.4355745, w: 0.5602374}
|
||||
scale: {x: 1.0000029, y: 1.0000026, z: 1.0000019}
|
||||
- name: mixamorig:LeftToeBase
|
||||
parentName: mixamorig:LeftFoot
|
||||
position: {x: -0, y: 0.1308076, z: 0}
|
||||
rotation: {x: 0.19264501, y: 0.00046184653, z: 0.002352476, w: 0.9812656}
|
||||
scale: {x: 1.000001, y: 0.99999976, z: 1.0000021}
|
||||
- name: mixamorig:LeftToe_End
|
||||
parentName: mixamorig:LeftToeBase
|
||||
position: {x: -0, y: 0.061049044, z: -3.5527136e-17}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:Spine
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: -0.0024581861, y: 0.094537124, z: 1.110223e-18}
|
||||
rotation: {x: -0.0000000011847465, y: 0.000000027988655, z: 0.012997864, w: 0.99991554}
|
||||
scale: {x: 1, y: 0.9999999, z: 1}
|
||||
- name: mixamorig:Spine1
|
||||
parentName: mixamorig:Spine
|
||||
position: {x: 8.881784e-18, y: 0.1103307, z: 0}
|
||||
rotation: {x: 0.000000004352489, y: -0.000000046559435, z: 0.000000027008355,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 0.9999999, z: 1}
|
||||
- name: mixamorig:Spine2
|
||||
parentName: mixamorig:Spine1
|
||||
position: {x: 8.881784e-18, y: 0.12609196, z: 0}
|
||||
rotation: {x: 0.000000058169196, y: 0.000000018020504, z: -9.31326e-10, w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001}
|
||||
- name: mixamorig:Neck
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: 0.000000007613613, y: 0.14185366, z: -5.551115e-19}
|
||||
rotation: {x: 0.000000015957266, y: 0.000000016797909, z: -0.012997881, w: 0.99991554}
|
||||
scale: {x: 0.9999999, y: 1, z: 1}
|
||||
- name: mixamorig:Head
|
||||
parentName: mixamorig:Neck
|
||||
position: {x: -0.0008683859, y: 0.053217314, z: 5.551115e-19}
|
||||
rotation: {x: -0.000000007200165, y: 0.0000000015158257, z: -0.000000024214387,
|
||||
w: 1}
|
||||
scale: {x: 1.0000002, y: 1, z: 1.0000004}
|
||||
- name: mixamorig:HeadTop_End
|
||||
parentName: mixamorig:Head
|
||||
position: {x: -0.0022724792, y: 0.13926437, z: 1.110223e-18}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftShoulder
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: 0.00020240633, y: 0.13515088, z: -0.04127286}
|
||||
rotation: {x: -0.0019427737, y: -0.64387274, z: 0.7651283, w: -0.0016816484}
|
||||
scale: {x: 1.0000032, y: 1.0000012, z: 1.0000011}
|
||||
- name: mixamorig:LeftArm
|
||||
parentName: mixamorig:LeftShoulder
|
||||
position: {x: -0, y: 0.0791558, z: 2.842171e-16}
|
||||
rotation: {x: -0.052307434, y: 0.0017309872, z: -0.0049234666, w: 0.9986174}
|
||||
scale: {x: 1.0000021, y: 1.0000029, z: 1.0000021}
|
||||
- name: mixamorig:LeftForeArm
|
||||
parentName: mixamorig:LeftArm
|
||||
position: {x: 4.440892e-18, y: 0.3525264, z: 0}
|
||||
rotation: {x: -0.03167211, y: 0.0079971645, z: -0.016885435, w: 0.9993237}
|
||||
scale: {x: 1.0000007, y: 1.0000013, z: 1.0000008}
|
||||
- name: mixamorig:LeftHand
|
||||
parentName: mixamorig:LeftForeArm
|
||||
position: {x: 1.7763568e-17, y: 0.29053873, z: 0}
|
||||
rotation: {x: -0, y: -2.3283064e-10, z: -1.3096724e-10, w: 1}
|
||||
scale: {x: 1.0000012, y: 1.0000001, z: 0.99999976}
|
||||
- name: mixamorig:RightShoulder
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: -0.0005504584, y: 0.13517044, z: 0.04127286}
|
||||
rotation: {x: 0.7649505, y: -0.004635785, z: 0.005321747, w: 0.6440504}
|
||||
scale: {x: 1.0000002, y: 1.0000006, z: 1.0000019}
|
||||
- name: mixamorig:RightArm
|
||||
parentName: mixamorig:RightShoulder
|
||||
position: {x: -0, y: 0.079155795, z: 0}
|
||||
rotation: {x: -0.04782623, y: -0.0011201247, z: 0.016020544, w: 0.9987266}
|
||||
scale: {x: 0.9999999, y: 1.0000025, z: 1.0000014}
|
||||
- name: mixamorig:RightForeArm
|
||||
parentName: mixamorig:RightArm
|
||||
position: {x: -0, y: 0.3522625, z: 0}
|
||||
rotation: {x: -0.03519323, y: -0.0078160325, z: 0.030223342, w: 0.99889284}
|
||||
scale: {x: 1.0000007, y: 1.0000008, z: 1.0000008}
|
||||
- name: mixamorig:RightHand
|
||||
parentName: mixamorig:RightForeArm
|
||||
position: {x: 8.881784e-18, y: 0.2879794, z: 2.842171e-16}
|
||||
rotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1.0000001, y: 1.0000005, z: 1.0000005}
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 1
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: fa0773caae34843268db7f12c1421ce5,
|
||||
type: 3}
|
||||
animationType: 3
|
||||
humanoidOversampling: 1
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/MarathonEnvs/Animations/MarathonManBackflip.fbx
LFS
Normal file
BIN
Assets/MarathonEnvs/Animations/MarathonManBackflip.fbx
LFS
Normal file
Binary file not shown.
760
Assets/MarathonEnvs/Animations/MarathonManBackflip.fbx.meta
generated
Normal file
760
Assets/MarathonEnvs/Animations/MarathonManBackflip.fbx.meta
generated
Normal file
@@ -0,0 +1,760 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fa0773caae34843268db7f12c1421ce5
|
||||
ModelImporter:
|
||||
serializedVersion: 23
|
||||
fileIDToRecycleName:
|
||||
100000: abdomen_y
|
||||
100002: //RootNode
|
||||
100004: butt
|
||||
100006: head
|
||||
100008: humanoidT
|
||||
100010: left_ankle_x
|
||||
100012: left_hand
|
||||
100014: left_hip_y
|
||||
100016: left_hip_z
|
||||
100018: left_larm
|
||||
100020: left_left_foot
|
||||
100022: left_right_foot
|
||||
100024: left_shin
|
||||
100026: left_shoulder2
|
||||
100028: left_thigh
|
||||
100030: left_upper_arm
|
||||
100032: LeftLeg__1_
|
||||
100034: lower_waist
|
||||
100036: mixamorig:Head
|
||||
100038: mixamorig:HeadTop_End
|
||||
100040: mixamorig:Hips
|
||||
100042: mixamorig:LeftArm
|
||||
100044: mixamorig:LeftFoot
|
||||
100046: mixamorig:LeftForeArm
|
||||
100048: mixamorig:LeftHand
|
||||
100050: mixamorig:LeftLeg
|
||||
100052: mixamorig:LeftShoulder
|
||||
100054: mixamorig:LeftToe_End
|
||||
100056: mixamorig:LeftToeBase
|
||||
100058: mixamorig:LeftUpLeg
|
||||
100060: mixamorig:Neck
|
||||
100062: mixamorig:RightArm
|
||||
100064: mixamorig:RightFoot
|
||||
100066: mixamorig:RightForeArm
|
||||
100068: mixamorig:RightHand
|
||||
100070: mixamorig:RightLeg
|
||||
100072: mixamorig:RightShoulder
|
||||
100074: mixamorig:RightToe_End
|
||||
100076: mixamorig:RightToeBase
|
||||
100078: mixamorig:RightUpLeg
|
||||
100080: mixamorig:Spine
|
||||
100082: mixamorig:Spine1
|
||||
100084: mixamorig:Spine2
|
||||
100086: right_ankle_x
|
||||
100088: right_hand
|
||||
100090: right_hip_y
|
||||
100092: right_hip_z
|
||||
100094: right_larm
|
||||
100096: right_left_foot
|
||||
100098: right_right_foot
|
||||
100100: right_shin
|
||||
100102: right_shoulder2
|
||||
100104: right_thigh
|
||||
100106: right_upper_arm
|
||||
100108: RightLeg
|
||||
100110: Shoulder
|
||||
100112: Spine
|
||||
100114: torso
|
||||
100116: upper_waist
|
||||
400000: abdomen_y
|
||||
400002: //RootNode
|
||||
400004: butt
|
||||
400006: head
|
||||
400008: humanoidT
|
||||
400010: left_ankle_x
|
||||
400012: left_hand
|
||||
400014: left_hip_y
|
||||
400016: left_hip_z
|
||||
400018: left_larm
|
||||
400020: left_left_foot
|
||||
400022: left_right_foot
|
||||
400024: left_shin
|
||||
400026: left_shoulder2
|
||||
400028: left_thigh
|
||||
400030: left_upper_arm
|
||||
400032: LeftLeg__1_
|
||||
400034: lower_waist
|
||||
400036: mixamorig:Head
|
||||
400038: mixamorig:HeadTop_End
|
||||
400040: mixamorig:Hips
|
||||
400042: mixamorig:LeftArm
|
||||
400044: mixamorig:LeftFoot
|
||||
400046: mixamorig:LeftForeArm
|
||||
400048: mixamorig:LeftHand
|
||||
400050: mixamorig:LeftLeg
|
||||
400052: mixamorig:LeftShoulder
|
||||
400054: mixamorig:LeftToe_End
|
||||
400056: mixamorig:LeftToeBase
|
||||
400058: mixamorig:LeftUpLeg
|
||||
400060: mixamorig:Neck
|
||||
400062: mixamorig:RightArm
|
||||
400064: mixamorig:RightFoot
|
||||
400066: mixamorig:RightForeArm
|
||||
400068: mixamorig:RightHand
|
||||
400070: mixamorig:RightLeg
|
||||
400072: mixamorig:RightShoulder
|
||||
400074: mixamorig:RightToe_End
|
||||
400076: mixamorig:RightToeBase
|
||||
400078: mixamorig:RightUpLeg
|
||||
400080: mixamorig:Spine
|
||||
400082: mixamorig:Spine1
|
||||
400084: mixamorig:Spine2
|
||||
400086: right_ankle_x
|
||||
400088: right_hand
|
||||
400090: right_hip_y
|
||||
400092: right_hip_z
|
||||
400094: right_larm
|
||||
400096: right_left_foot
|
||||
400098: right_right_foot
|
||||
400100: right_shin
|
||||
400102: right_shoulder2
|
||||
400104: right_thigh
|
||||
400106: right_upper_arm
|
||||
400108: RightLeg
|
||||
400110: Shoulder
|
||||
400112: Spine
|
||||
400114: torso
|
||||
400116: upper_waist
|
||||
2100000: MarathonMat
|
||||
2100002: Default_Line
|
||||
4300000: butt
|
||||
4300002: lower_waist
|
||||
4300004: upper_waist
|
||||
4300006: torso
|
||||
4300008: head
|
||||
4300010: left_upper_arm
|
||||
4300012: left_larm
|
||||
4300014: left_hand
|
||||
4300016: right_upper_arm
|
||||
4300018: right_larm
|
||||
4300020: right_hand
|
||||
4300022: Shoulder
|
||||
4300024: Spine
|
||||
4300026: left_thigh
|
||||
4300028: left_shin
|
||||
4300030: left_left_foot
|
||||
4300032: left_right_foot
|
||||
4300034: LeftLeg__1_
|
||||
4300036: right_thigh
|
||||
4300038: right_shin
|
||||
4300040: right_right_foot
|
||||
4300042: right_left_foot
|
||||
4300044: RightLeg
|
||||
7400000: MarathonManBackflip
|
||||
9500000: //RootNode
|
||||
13700000: butt
|
||||
13700002: head
|
||||
13700004: left_hand
|
||||
13700006: left_larm
|
||||
13700008: left_left_foot
|
||||
13700010: left_right_foot
|
||||
13700012: left_shin
|
||||
13700014: left_thigh
|
||||
13700016: left_upper_arm
|
||||
13700018: LeftLeg__1_
|
||||
13700020: lower_waist
|
||||
13700022: right_hand
|
||||
13700024: right_larm
|
||||
13700026: right_left_foot
|
||||
13700028: right_right_foot
|
||||
13700030: right_shin
|
||||
13700032: right_thigh
|
||||
13700034: right_upper_arm
|
||||
13700036: RightLeg
|
||||
13700038: Shoulder
|
||||
13700040: Spine
|
||||
13700042: torso
|
||||
13700044: upper_waist
|
||||
externalObjects: {}
|
||||
materials:
|
||||
importMaterials: 1
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
motionNodeName:
|
||||
rigImportErrors:
|
||||
rigImportWarnings:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 3
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations:
|
||||
- serializedVersion: 16
|
||||
name: MarathonManBackflip
|
||||
takeName: mixamo.com
|
||||
firstFrame: 0
|
||||
lastFrame: 129
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 0
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 0
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 0
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 0
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events: []
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
optimizeMeshForGPU: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
preserveHierarchy: 0
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
previousCalculatedGlobalScale: 0.01
|
||||
hasPreviousCalculatedGlobalScale: 1
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
importAnimation: 1
|
||||
copyAvatar: 0
|
||||
humanDescription:
|
||||
serializedVersion: 2
|
||||
human:
|
||||
- boneName: mixamorig:Hips
|
||||
humanName: Hips
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftUpLeg
|
||||
humanName: LeftUpperLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightUpLeg
|
||||
humanName: RightUpperLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftLeg
|
||||
humanName: LeftLowerLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightLeg
|
||||
humanName: RightLowerLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftFoot
|
||||
humanName: LeftFoot
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightFoot
|
||||
humanName: RightFoot
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine
|
||||
humanName: Spine
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine1
|
||||
humanName: Chest
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Neck
|
||||
humanName: Neck
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Head
|
||||
humanName: Head
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftShoulder
|
||||
humanName: LeftShoulder
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightShoulder
|
||||
humanName: RightShoulder
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftArm
|
||||
humanName: LeftUpperArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightArm
|
||||
humanName: RightUpperArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftForeArm
|
||||
humanName: LeftLowerArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightForeArm
|
||||
humanName: RightLowerArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftHand
|
||||
humanName: LeftHand
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightHand
|
||||
humanName: RightHand
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:LeftToeBase
|
||||
humanName: LeftToes
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:RightToeBase
|
||||
humanName: RightToes
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: mixamorig:Spine2
|
||||
humanName: UpperChest
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
skeleton:
|
||||
- name: Backflip(Clone)
|
||||
parentName:
|
||||
position: {x: 0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: humanoidT
|
||||
parentName: Backflip(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: butt
|
||||
parentName: humanoidT
|
||||
position: {x: 0.028619736, y: 1.0587679, z: 0.002142583}
|
||||
rotation: {x: 0.7049101, y: -0.026212664, z: 0.013773171, w: 0.70867836}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: lower_waist
|
||||
parentName: butt
|
||||
position: {x: -0.021319339, y: 0.00040355325, z: -0.16483356}
|
||||
rotation: {x: 0.0031044185, y: 0.0020000096, z: -0.000018799677, w: 0.9999932}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: abdomen_y
|
||||
parentName: lower_waist
|
||||
position: {x: -0.0000723721, y: 0.000012806966, z: -0.0017823265}
|
||||
rotation: {x: 0.00014829637, y: 0.0018769234, z: -0.02827898, w: 0.9995983}
|
||||
scale: {x: 1, y: 1.0000005, z: 1.0000002}
|
||||
- name: upper_waist
|
||||
parentName: lower_waist
|
||||
position: {x: -0.0019383731, y: 0.00014567096, z: -0.14226863}
|
||||
rotation: {x: -0.0004889473, y: 0.007208624, z: -0.028266912, w: 0.9995743}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: torso
|
||||
parentName: upper_waist
|
||||
position: {x: -0.010000003, y: 0, z: -0.12}
|
||||
rotation: {x: -0, y: -0, z: 5.134097e-10, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: head
|
||||
parentName: torso
|
||||
position: {x: 0.00012124982, y: -0.00066340127, z: -0.20378074}
|
||||
rotation: {x: -0.7070211, y: -0.00034404645, z: -0.00035778637, w: 0.70719224}
|
||||
scale: {x: 0.18, y: 0.18000005, z: 0.18000005}
|
||||
- name: left_upper_arm
|
||||
parentName: torso
|
||||
position: {x: -0.00805471, y: -0.3095426, z: -0.046386097}
|
||||
rotation: {x: -0.050138354, y: -0.15586165, z: -0.020825602, w: 0.9862858}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_larm
|
||||
parentName: left_upper_arm
|
||||
position: {x: -0.05012562, y: -0.3203213, z: 0.013551146}
|
||||
rotation: {x: -0.1464947, y: -0.69702035, z: -0.08435819, w: 0.6968398}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_hand
|
||||
parentName: left_larm
|
||||
position: {x: -0.000015493482, y: -0.15598094, z: -0.000019282103}
|
||||
rotation: {x: 0.6276541, y: -0.0002503395, z: 0.628233, w: 0.45975387}
|
||||
scale: {x: 0.08000005, y: 0.08000001, z: 0.08000004}
|
||||
- name: left_shoulder2
|
||||
parentName: left_upper_arm
|
||||
position: {x: 0.023122678, y: 0.03264472, z: 0.08629361}
|
||||
rotation: {x: -0.33152154, y: -0.00000017136335, z: 0.08883171, w: 0.9392563}
|
||||
scale: {x: 1.0000001, y: 1.0000002, z: 1.0000001}
|
||||
- name: right_upper_arm
|
||||
parentName: torso
|
||||
position: {x: -0.0065300968, y: 0.3054909, z: -0.028148612}
|
||||
rotation: {x: 0.9821227, y: 0.0047237636, z: 0.14654115, w: -0.118061}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_larm
|
||||
parentName: right_upper_arm
|
||||
position: {x: -0.05019078, y: -0.32017505, z: -0.013448662}
|
||||
rotation: {x: 0.14644656, y: 0.69692343, z: -0.08455098, w: 0.69692343}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_hand
|
||||
parentName: right_larm
|
||||
position: {x: -0.00003791973, y: -0.15599604, z: 0.00002259016}
|
||||
rotation: {x: -0.6275729, y: 0.0003462434, z: 0.6282862, w: 0.459792}
|
||||
scale: {x: 0.079999946, y: 0.080000006, z: 0.07999995}
|
||||
- name: right_shoulder2
|
||||
parentName: right_upper_arm
|
||||
position: {x: 0.018984409, y: 0.021175496, z: -0.07061822}
|
||||
rotation: {x: 0.26393244, y: -0.0016188326, z: 0.07030048, w: 0.9619745}
|
||||
scale: {x: 1.0000001, y: 1.0000002, z: 1.0000001}
|
||||
- name: Shoulder
|
||||
parentName: torso
|
||||
position: {x: -0.001, y: -0.001, z: -0.075}
|
||||
rotation: {x: 0.001067541, y: -0.707106, z: 0.707106, w: 0.001067541}
|
||||
scale: {x: 0.050000057, y: 0.05000001, z: 0.3}
|
||||
- name: Spine
|
||||
parentName: butt
|
||||
position: {x: -0.033886682, y: 0.0012130737, z: -0.29749244}
|
||||
rotation: {x: 0.010788803, y: -0.0027317873, z: 0.99953836, w: 0.028269844}
|
||||
scale: {x: 0.05000011, y: 0.05000005, z: 0.6000004}
|
||||
- name: left_thigh
|
||||
parentName: humanoidT
|
||||
position: {x: 0.022163205, y: 0.8473689, z: -0.09560348}
|
||||
rotation: {x: -0.008197911, y: -0.008591415, z: 0.024315646, w: 0.99963385}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_hip_y
|
||||
parentName: left_thigh
|
||||
position: {x: -0.00018789193, y: 0.00050958304, z: 0.0037600398}
|
||||
rotation: {x: -0.011198115, y: -0.019681891, z: -0.00040819624, w: 0.9997435}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_hip_z
|
||||
parentName: left_thigh
|
||||
position: {x: 0.000009631686, y: 0.00050954695, z: 0.0037639162}
|
||||
rotation: {x: -0.011199301, y: 0.00007027015, z: -0.00004858979, w: 0.9999373}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_shin
|
||||
parentName: left_thigh
|
||||
position: {x: 0.0069502685, y: -0.38283935, z: -0.006257828}
|
||||
rotation: {x: 0.014698038, y: -0.0003006309, z: 0.020444054, w: 0.9996829}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_left_foot
|
||||
parentName: left_shin
|
||||
position: {x: -0.04318934, y: -0.23842703, z: -0.026194116}
|
||||
rotation: {x: 0.033987474, y: -0.015081191, z: -0.73684585, w: 0.6750375}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: left_ankle_x
|
||||
parentName: left_left_foot
|
||||
position: {x: 0.0028956856, y: 0.0075475774, z: -0.000414714}
|
||||
rotation: {x: -0.0043921056, y: 0.0034287455, z: 0.046523295, w: 0.99890167}
|
||||
scale: {x: 1.0000002, y: 1.0000002, z: 1}
|
||||
- name: left_right_foot
|
||||
parentName: left_left_foot
|
||||
position: {x: -0.012464729, y: 0.005532327, z: 0.21164574}
|
||||
rotation: {x: 0.0533601, y: 0.06701755, z: -0.0019481222, w: 0.99632204}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: LeftLeg__1_
|
||||
parentName: left_thigh
|
||||
position: {x: -0.040999997, y: -0.30899996, z: 0.19}
|
||||
rotation: {x: 0.009720462, y: 0.71269727, z: -0.7010641, w: -0.02184826}
|
||||
scale: {x: 0.05000017, y: 0.050000105, z: 0.6000013}
|
||||
- name: right_thigh
|
||||
parentName: humanoidT
|
||||
position: {x: 0.010520758, y: 0.84846205, z: 0.09885497}
|
||||
rotation: {x: 0.0074896533, y: -0.027545288, z: 0.022941835, w: 0.9993292}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_hip_y
|
||||
parentName: right_thigh
|
||||
position: {x: 0.000021025491, y: 0.0009465131, z: -0.0013828418}
|
||||
rotation: {x: 0.0036728394, y: -0.00037535836, z: -0.00008118107, w: 0.9999932}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_hip_z
|
||||
parentName: right_thigh
|
||||
position: {x: -0.0000000049330993, y: 0.0000052593314, z: -0.0013360521}
|
||||
rotation: {x: 0.003927878, y: 1.3571037e-25, z: -0.000000013460522, w: 0.9999923}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_shin
|
||||
parentName: right_thigh
|
||||
position: {x: 0.0068513784, y: -0.38295454, z: 0.006241403}
|
||||
rotation: {x: -0.014669814, y: 0.0003177673, z: 0.020145983, w: 0.9996894}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_right_foot
|
||||
parentName: right_shin
|
||||
position: {x: -0.043461975, y: -0.239265, z: 0.02424076}
|
||||
rotation: {x: -0.017235627, y: 0.021577317, z: -0.735891, w: 0.6765366}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: right_ankle_x
|
||||
parentName: right_right_foot
|
||||
position: {x: 0.0029095989, y: 0.0074111656, z: 0.00041196973}
|
||||
rotation: {x: 0.004348083, y: -0.0036474187, z: 0.04522145, w: 0.9989609}
|
||||
scale: {x: 1.0000002, y: 1.0000002, z: 1}
|
||||
- name: right_left_foot
|
||||
parentName: right_right_foot
|
||||
position: {x: -0.003858014, y: 0.01637404, z: -0.21142484}
|
||||
rotation: {x: -0.0532643, y: -0.0675717, z: -0.0010922394, w: 0.99629104}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: RightLeg
|
||||
parentName: right_thigh
|
||||
position: {x: -0.043, y: -0.316, z: -0.18299998}
|
||||
rotation: {x: 0.004674896, y: -0.701414, z: 0.7119129, w: 0.03430193}
|
||||
scale: {x: 0.05000008, y: 0.05000004, z: 0.6000004}
|
||||
- name: mixamorig:Hips
|
||||
parentName: Backflip(Clone)
|
||||
position: {x: -0.005175761, y: 0.9335466, z: -0.0036196744}
|
||||
rotation: {x: 0.000000008326478, y: 0.71872675, z: -0.000000014373027, w: 0.69529265}
|
||||
scale: {x: 1, y: 1.0000002, z: 1}
|
||||
- name: mixamorig:RightUpLeg
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: -0.008040293, y: -0.05244598, z: 0.10175739}
|
||||
rotation: {x: -0.000096233984, y: -0.007695467, z: 0.99989223, w: -0.012503546}
|
||||
scale: {x: 1.0000052, y: 1.0000025, z: 1}
|
||||
- name: mixamorig:RightLeg
|
||||
parentName: mixamorig:RightUpLeg
|
||||
position: {x: 4.440892e-18, y: 0.4222232, z: 0}
|
||||
rotation: {x: 0.019863136, y: 0.0010614229, z: 0.053350624, w: 0.9983777}
|
||||
scale: {x: 1.0000031, y: 1.0000021, z: 1.0000019}
|
||||
- name: mixamorig:RightFoot
|
||||
parentName: mixamorig:RightLeg
|
||||
position: {x: -0, y: 0.38956782, z: 0}
|
||||
rotation: {x: -0.42334923, y: -0.5705113, z: 0.4392357, w: -0.5498767}
|
||||
scale: {x: 1.0000018, y: 1.0000029, z: 1.0000002}
|
||||
- name: mixamorig:RightToeBase
|
||||
parentName: mixamorig:RightFoot
|
||||
position: {x: -0, y: 0.12412127, z: 7.105427e-17}
|
||||
rotation: {x: -0.20302476, y: 0.0002567768, z: 0.0012378544, w: -0.9791728}
|
||||
scale: {x: 1.0000008, y: 0.9999995, z: 1.0000048}
|
||||
- name: mixamorig:RightToe_End
|
||||
parentName: mixamorig:RightToeBase
|
||||
position: {x: -0, y: 0.060296334, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftUpLeg
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: 0.0035344027, y: -0.05244598, z: -0.10175739}
|
||||
rotation: {x: 0.00008969172, y: 0.007695548, z: 0.9999024, w: -0.011660735}
|
||||
scale: {x: 1.000008, y: 1.0000052, z: 1}
|
||||
- name: mixamorig:LeftLeg
|
||||
parentName: mixamorig:LeftUpLeg
|
||||
position: {x: -0, y: 0.42220598, z: 0}
|
||||
rotation: {x: -0.019789819, y: -0.001283939, z: 0.06472981, w: 0.9977058}
|
||||
scale: {x: 1.0000039, y: 1.000004, z: 1.0000007}
|
||||
- name: mixamorig:LeftFoot
|
||||
parentName: mixamorig:LeftLeg
|
||||
position: {x: -0, y: 0.3907465, z: 0}
|
||||
rotation: {x: 0.45038655, y: 0.54181254, z: -0.4355745, w: 0.5602374}
|
||||
scale: {x: 1.0000029, y: 1.0000026, z: 1.0000019}
|
||||
- name: mixamorig:LeftToeBase
|
||||
parentName: mixamorig:LeftFoot
|
||||
position: {x: -0, y: 0.1308076, z: 0}
|
||||
rotation: {x: 0.19264501, y: 0.00046184653, z: 0.002352476, w: 0.9812656}
|
||||
scale: {x: 1.000001, y: 0.99999976, z: 1.0000021}
|
||||
- name: mixamorig:LeftToe_End
|
||||
parentName: mixamorig:LeftToeBase
|
||||
position: {x: -0, y: 0.061049044, z: -3.5527136e-17}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:Spine
|
||||
parentName: mixamorig:Hips
|
||||
position: {x: -0.0024581861, y: 0.094537124, z: 1.110223e-18}
|
||||
rotation: {x: -0.0000000011847465, y: 0.000000027988655, z: 0.012997864, w: 0.99991554}
|
||||
scale: {x: 1, y: 0.9999999, z: 1}
|
||||
- name: mixamorig:Spine1
|
||||
parentName: mixamorig:Spine
|
||||
position: {x: 8.881784e-18, y: 0.1103307, z: 0}
|
||||
rotation: {x: 0.000000004352489, y: -0.000000046559435, z: 0.000000027008355,
|
||||
w: 1}
|
||||
scale: {x: 1, y: 0.9999999, z: 1}
|
||||
- name: mixamorig:Spine2
|
||||
parentName: mixamorig:Spine1
|
||||
position: {x: 8.881784e-18, y: 0.12609196, z: 0}
|
||||
rotation: {x: 0.000000058169196, y: 0.000000018020504, z: -9.31326e-10, w: 1}
|
||||
scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001}
|
||||
- name: mixamorig:Neck
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: 0.000000007613613, y: 0.14185366, z: -5.551115e-19}
|
||||
rotation: {x: 0.000000015957266, y: 0.000000016797909, z: -0.012997881, w: 0.99991554}
|
||||
scale: {x: 0.9999999, y: 1, z: 1}
|
||||
- name: mixamorig:Head
|
||||
parentName: mixamorig:Neck
|
||||
position: {x: -0.0008683859, y: 0.053217314, z: 5.551115e-19}
|
||||
rotation: {x: -0.000000007200165, y: 0.0000000015158257, z: -0.000000024214387,
|
||||
w: 1}
|
||||
scale: {x: 1.0000002, y: 1, z: 1.0000004}
|
||||
- name: mixamorig:HeadTop_End
|
||||
parentName: mixamorig:Head
|
||||
position: {x: -0.0022724792, y: 0.13926437, z: 1.110223e-18}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: mixamorig:LeftShoulder
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: 0.00020240633, y: 0.13515088, z: -0.04127286}
|
||||
rotation: {x: -0.0019427737, y: -0.64387274, z: 0.7651283, w: -0.0016816484}
|
||||
scale: {x: 1.0000032, y: 1.0000012, z: 1.0000011}
|
||||
- name: mixamorig:LeftArm
|
||||
parentName: mixamorig:LeftShoulder
|
||||
position: {x: -0, y: 0.0791558, z: 2.842171e-16}
|
||||
rotation: {x: -0.052307434, y: 0.0017309872, z: -0.0049234666, w: 0.9986174}
|
||||
scale: {x: 1.0000021, y: 1.0000029, z: 1.0000021}
|
||||
- name: mixamorig:LeftForeArm
|
||||
parentName: mixamorig:LeftArm
|
||||
position: {x: 4.440892e-18, y: 0.3525264, z: 0}
|
||||
rotation: {x: -0.03167211, y: 0.0079971645, z: -0.016885435, w: 0.9993237}
|
||||
scale: {x: 1.0000007, y: 1.0000013, z: 1.0000008}
|
||||
- name: mixamorig:LeftHand
|
||||
parentName: mixamorig:LeftForeArm
|
||||
position: {x: 1.7763568e-17, y: 0.29053873, z: 0}
|
||||
rotation: {x: -0, y: -2.3283064e-10, z: -1.3096724e-10, w: 1}
|
||||
scale: {x: 1.0000012, y: 1.0000001, z: 0.99999976}
|
||||
- name: mixamorig:RightShoulder
|
||||
parentName: mixamorig:Spine2
|
||||
position: {x: -0.0005504584, y: 0.13517044, z: 0.04127286}
|
||||
rotation: {x: 0.7649505, y: -0.004635785, z: 0.005321747, w: 0.6440504}
|
||||
scale: {x: 1.0000002, y: 1.0000006, z: 1.0000019}
|
||||
- name: mixamorig:RightArm
|
||||
parentName: mixamorig:RightShoulder
|
||||
position: {x: -0, y: 0.079155795, z: 0}
|
||||
rotation: {x: -0.04782623, y: -0.0011201247, z: 0.016020544, w: 0.9987266}
|
||||
scale: {x: 0.9999999, y: 1.0000025, z: 1.0000014}
|
||||
- name: mixamorig:RightForeArm
|
||||
parentName: mixamorig:RightArm
|
||||
position: {x: -0, y: 0.3522625, z: 0}
|
||||
rotation: {x: -0.03519323, y: -0.0078160325, z: 0.030223342, w: 0.99889284}
|
||||
scale: {x: 1.0000007, y: 1.0000008, z: 1.0000008}
|
||||
- name: mixamorig:RightHand
|
||||
parentName: mixamorig:RightForeArm
|
||||
position: {x: 8.881784e-18, y: 0.2879794, z: 2.842171e-16}
|
||||
rotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1.0000001, y: 1.0000005, z: 1.0000005}
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 1
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
animationType: 3
|
||||
humanoidOversampling: 1
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
544
Assets/MarathonEnvs/Animations/MocapAnimator.controller
Normal file
544
Assets/MarathonEnvs/Animations/MocapAnimator.controller
Normal file
@@ -0,0 +1,544 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!91 &9100000
|
||||
AnimatorController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: MocapAnimator
|
||||
serializedVersion: 5
|
||||
m_AnimatorParameters:
|
||||
- m_Name: forwardVelocity
|
||||
m_Type: 1
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: angleDeltaRad
|
||||
m_Type: 1
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: verticalVelocity
|
||||
m_Type: 1
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: onGround
|
||||
m_Type: 4
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: backflip
|
||||
m_Type: 4
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
m_AnimatorLayers:
|
||||
- serializedVersion: 5
|
||||
m_Name: Base Layer
|
||||
m_StateMachine: {fileID: 1107058548493582758}
|
||||
m_Mask: {fileID: 0}
|
||||
m_Motions: []
|
||||
m_Behaviours: []
|
||||
m_BlendingMode: 0
|
||||
m_SyncedLayerIndex: -1
|
||||
m_DefaultWeight: 0
|
||||
m_IKPass: 0
|
||||
m_SyncedLayerAffectsTiming: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
--- !u!206 &206157808458599786
|
||||
BlendTree:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: BlendTree
|
||||
m_Childs: []
|
||||
m_BlendParameter: forwardVelocity
|
||||
m_BlendParameterY: forwardVelocity
|
||||
m_MinThreshold: 0
|
||||
m_MaxThreshold: 1
|
||||
m_UseAutomaticThresholds: 1
|
||||
m_NormalizedBlendValues: 0
|
||||
m_BlendType: 0
|
||||
--- !u!206 &206664786030821926
|
||||
BlendTree:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Blend Tree
|
||||
m_Childs: []
|
||||
m_BlendParameter: Blend
|
||||
m_BlendParameterY: Blend
|
||||
m_MinThreshold: 0
|
||||
m_MaxThreshold: 1
|
||||
m_UseAutomaticThresholds: 1
|
||||
m_NormalizedBlendValues: 0
|
||||
m_BlendType: 0
|
||||
--- !u!206 &206696511503391770
|
||||
BlendTree:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Blend Tree
|
||||
m_Childs:
|
||||
- serializedVersion: 2
|
||||
m_Motion: {fileID: 7400002, guid: 9c569166600d641efacce54b9444fdd9, type: 3}
|
||||
m_Threshold: -5
|
||||
m_Position: {x: 0, y: 0}
|
||||
m_TimeScale: 1
|
||||
m_CycleOffset: 0
|
||||
m_DirectBlendParameter: forwardVelocity
|
||||
m_Mirror: 0
|
||||
- serializedVersion: 2
|
||||
m_Motion: {fileID: 7400004, guid: 9c569166600d641efacce54b9444fdd9, type: 3}
|
||||
m_Threshold: 5
|
||||
m_Position: {x: 0, y: 0}
|
||||
m_TimeScale: 0.1
|
||||
m_CycleOffset: 0
|
||||
m_DirectBlendParameter: forwardVelocity
|
||||
m_Mirror: 0
|
||||
m_BlendParameter: verticalVelocity
|
||||
m_BlendParameterY: forwardVelocity
|
||||
m_MinThreshold: -5
|
||||
m_MaxThreshold: 5
|
||||
m_UseAutomaticThresholds: 0
|
||||
m_NormalizedBlendValues: 0
|
||||
m_BlendType: 0
|
||||
--- !u!206 &206719268591965826
|
||||
BlendTree:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Blend Tree
|
||||
m_Childs:
|
||||
- serializedVersion: 2
|
||||
m_Motion: {fileID: 7400000, guid: 3cbf7c59af8d94019b750c41a6942bb0, type: 3}
|
||||
m_Threshold: 0
|
||||
m_Position: {x: 0, y: 0}
|
||||
m_TimeScale: 1
|
||||
m_CycleOffset: 0
|
||||
m_DirectBlendParameter: vertical
|
||||
m_Mirror: 0
|
||||
- serializedVersion: 2
|
||||
m_Motion: {fileID: 7400000, guid: 7cebe89af92024b3aa1f5ca92436b252, type: 3}
|
||||
m_Threshold: 1
|
||||
m_Position: {x: 0, y: 0}
|
||||
m_TimeScale: 1
|
||||
m_CycleOffset: 0
|
||||
m_DirectBlendParameter: forwardVelocity
|
||||
m_Mirror: 0
|
||||
m_BlendParameter: forwardVelocity
|
||||
m_BlendParameterY: vertical
|
||||
m_MinThreshold: 0
|
||||
m_MaxThreshold: 1
|
||||
m_UseAutomaticThresholds: 0
|
||||
m_NormalizedBlendValues: 0
|
||||
m_BlendType: 0
|
||||
--- !u!1101 &1101033215877470050
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 1102989415181925958}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.88372093
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &1101237206443710754
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 2
|
||||
m_ConditionEvent: onGround
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 1102338459823081104}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.7289157
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &1101253284072432862
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: onGround
|
||||
m_EventTreshold: 0
|
||||
- m_ConditionMode: 4
|
||||
m_ConditionEvent: forwardVelocity
|
||||
m_EventTreshold: 0.1
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 1102989415181925958}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.1
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.9
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 0
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &1101280419691705128
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 3
|
||||
m_ConditionEvent: forwardVelocity
|
||||
m_EventTreshold: 0.1
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 1102421071454505862}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.94
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &1101426064788353138
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: backflip
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 1102321781453514832}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.24999994
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &1101440308263575544
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 3
|
||||
m_ConditionEvent: forwardVelocity
|
||||
m_EventTreshold: 0.1
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 1102421071454505862}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.88372093
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &1101554019461341286
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 3
|
||||
m_ConditionEvent: forwardVelocity
|
||||
m_EventTreshold: 0.1
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: onGround
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 1102421071454505862}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.1
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.9
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 0
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &1101623484301534992
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 4
|
||||
m_ConditionEvent: forwardVelocity
|
||||
m_EventTreshold: 0.1
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 1102989415181925958}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.75
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &1101863413995211506
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 2
|
||||
m_ConditionEvent: onGround
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 1102338459823081104}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.97
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &1101997494127427236
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: backflip
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 1102321781453514832}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.017237527
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &1102321781453514832
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Backflip
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 1101033215877470050}
|
||||
- {fileID: 1101440308263575544}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 1
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: fa0773caae34843268db7f12c1421ce5, type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter: forwardVelocity
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &1102338459823081104
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Blend Tree
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 1101253284072432862}
|
||||
- {fileID: 1101554019461341286}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 1
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 206696511503391770}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &1102421071454505862
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Forward
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 1101623484301534992}
|
||||
- {fileID: 1101237206443710754}
|
||||
- {fileID: 1101426064788353138}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 1
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 206719268591965826}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &1102989415181925958
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Idle
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 1101280419691705128}
|
||||
- {fileID: 1101863413995211506}
|
||||
- {fileID: 1101997494127427236}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 1
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: 2d10b50dc653e4052a4407c743c3da5c, type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1107 &1107058548493582758
|
||||
AnimatorStateMachine:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Base Layer
|
||||
m_ChildStates:
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 1102989415181925958}
|
||||
m_Position: {x: -120, y: 140, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 1102421071454505862}
|
||||
m_Position: {x: -180, y: -12, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 1102338459823081104}
|
||||
m_Position: {x: 110, y: 20, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 1102321781453514832}
|
||||
m_Position: {x: -384, y: 72, z: 0}
|
||||
m_ChildStateMachines: []
|
||||
m_AnyStateTransitions: []
|
||||
m_EntryTransitions: []
|
||||
m_StateMachineTransitions: {}
|
||||
m_StateMachineBehaviours: []
|
||||
m_AnyStatePosition: {x: 48, y: -60, z: 0}
|
||||
m_EntryPosition: {x: 36, y: 204, z: 0}
|
||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||
m_DefaultState: {fileID: 1102989415181925958}
|
||||
8
Assets/MarathonEnvs/Animations/MocapAnimator.controller.meta
generated
Normal file
8
Assets/MarathonEnvs/Animations/MocapAnimator.controller.meta
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 302de0a71ea44470782418460ee6b832
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 9100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/MarathonEnvs/Environments.meta
generated
Normal file
8
Assets/MarathonEnvs/Environments.meta
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7208111bcfe6fa84c83030227186e55e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
821
Assets/MarathonEnvs/Environments/DReCon-v0.prefab
generated
Normal file
821
Assets/MarathonEnvs/Environments/DReCon-v0.prefab
generated
Normal file
@@ -0,0 +1,821 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &3989728765861935376
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5601182598464780559}
|
||||
- component: {fileID: 1578564315674380699}
|
||||
m_Layer: 0
|
||||
m_Name: Input
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5601182598464780559
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3989728765861935376}
|
||||
serializedVersion: 2
|
||||
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_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1714340263721781765}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1578564315674380699
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3989728765861935376}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b028a18f3817e4b768154fd94047e4d7, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
MaxVelocity: 8
|
||||
ClipInput: 0
|
||||
NoJumpsInMockMode: 1
|
||||
TargetMovementVector: {x: 0, y: 0}
|
||||
TargetMovementMagnatude: 0
|
||||
MovementVector: {x: 0, y: 0}
|
||||
MovementMagnatude: 0
|
||||
CameraRotation: {x: 0, y: 0}
|
||||
Jump: 0
|
||||
Backflip: 0
|
||||
Stand: 0
|
||||
WalkOrRun: 0
|
||||
DesiredHorizontalVelocity: {x: 0, y: 0}
|
||||
HorizontalDirection: {x: 0, y: 0, z: 0}
|
||||
UseHumanInput: 1
|
||||
DemoMockIfNoInput: 1
|
||||
--- !u!1 &5370464465988772728
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5370464465988772612}
|
||||
- component: {fileID: 5370464465988772613}
|
||||
- component: {fileID: 5370464465988772614}
|
||||
- component: {fileID: 5370464465988772615}
|
||||
m_Layer: 0
|
||||
m_Name: AgentTarget
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5370464465988772612
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5370464465988772728}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 6.76, y: 0.22, z: 5.74}
|
||||
m_LocalScale: {x: 0.25, y: 0.25, z: 0.25}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1714340263721781765}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &5370464465988772613
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5370464465988772728}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &5370464465988772614
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5370464465988772728}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 627fb1f9c85d0ab498c358b8ff0d6de6, 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: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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!65 &5370464465988772615
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5370464465988772728}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 0
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &3745292643924379816
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 371211994496726598, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 2
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2608565721708774061, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2608565721708774061, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2608565721708774061, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2608565721708774061, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2608565721708774061, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2608565721708774061, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2608565721708774061, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2608565721708774061, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2608565721708774061, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2608565721708774061, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2608565721708774061, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3499865627114767964, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3617279857455892011, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4220755503070646539, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4220755503070646539, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: -100
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4220755503070646539, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4220755503070646539, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -100
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4475872956784911638, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 6
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4810550302162678093, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5965315998760433598, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 16
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5965315998760433598, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6392590009493042066, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 4
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6734805552995975707, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_ProvidesContacts
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6734805552995975707, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_EnableTreeColliders
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8081357739622870871, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: DReCon-v0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8081357739622870871, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8087028546548217645, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_Enabled
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8087028546548217645, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: _groundRoot
|
||||
value:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8087028546548217645, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: _useTerrain
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8087028546548217645, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: _updatebounds
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8087028546548217645, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: _groundRootName
|
||||
value: CommonGround
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8087028546548217645, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: inactiveAgents.Array.size
|
||||
value: 2
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8087028546548217645, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: inactiveAgents.Array.data[0]
|
||||
value:
|
||||
objectReference: {fileID: 9028912518352089956}
|
||||
- target: {fileID: 8087028546548217645, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: inactiveAgents.Array.data[1]
|
||||
value:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8686670818618531365, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects:
|
||||
- targetCorrespondingSourceObject: {fileID: 2608565721708774061, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 5601182598464780559}
|
||||
- targetCorrespondingSourceObject: {fileID: 2608565721708774061, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 5370464465988772612}
|
||||
- targetCorrespondingSourceObject: {fileID: 2608565721708774061, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 5410650273635025271}
|
||||
- targetCorrespondingSourceObject: {fileID: 2608565721708774061, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 1976157281100074716}
|
||||
- targetCorrespondingSourceObject: {fileID: 2608565721708774061, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 877578399104125776}
|
||||
m_AddedComponents:
|
||||
- targetCorrespondingSourceObject: {fileID: 8081357739622870871, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 5437849642330803184}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: c7f549aabbce548e7aae2b2101ae3062, type: 3}
|
||||
--- !u!4 &1714340263721781765 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 2608565721708774061, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 3745292643924379816}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &4890684744258037759 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 8081357739622870871, guid: c7f549aabbce548e7aae2b2101ae3062,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 3745292643924379816}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!114 &5437849642330803184
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4890684744258037759}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c35bb009193589147a32f492be74a1a1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
renderOnlyTarget: 0
|
||||
movementsource: {fileID: 9028912518352089956}
|
||||
ragdollcontroller: {fileID: 1973854535028386212}
|
||||
--- !u!1001 &4541858248741530902
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 1714340263721781765}
|
||||
m_Modifications:
|
||||
- target: {fileID: 392232339659560021, guid: c4813c0eb838d1b4fa513c76f6b99f5f,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: AgentMove-outcome
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3686799810742117958, guid: c4813c0eb838d1b4fa513c76f6b99f5f,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 8
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3686799810742117958, guid: c4813c0eb838d1b4fa513c76f6b99f5f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3686799810742117958, guid: c4813c0eb838d1b4fa513c76f6b99f5f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3686799810742117958, guid: c4813c0eb838d1b4fa513c76f6b99f5f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8490727564501632366, guid: c4813c0eb838d1b4fa513c76f6b99f5f,
|
||||
type: 3}
|
||||
propertyPath: data4constraints
|
||||
value:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8490727564501632366, guid: c4813c0eb838d1b4fa513c76f6b99f5f,
|
||||
type: 3}
|
||||
propertyPath: _articulationBodyRoot
|
||||
value:
|
||||
objectReference: {fileID: 5003744890765894587}
|
||||
- target: {fileID: 8490727564501632366, guid: c4813c0eb838d1b4fa513c76f6b99f5f,
|
||||
type: 3}
|
||||
propertyPath: SetUpConstraintsFromData
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: c4813c0eb838d1b4fa513c76f6b99f5f, type: 3}
|
||||
--- !u!4 &877578399104125776 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 3686799810742117958, guid: c4813c0eb838d1b4fa513c76f6b99f5f,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 4541858248741530902}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &7093028827085853943
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 1714340263721781765}
|
||||
m_Modifications:
|
||||
- target: {fileID: 114263248370519032, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_Model
|
||||
value:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 260939356137283678, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: 0.0039293133
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 348096294373738880, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.x
|
||||
value: -0.143
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 689695163126716068, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: 0.0028464263
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 837786529545343070, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.x
|
||||
value: -0.1059237
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 837786529545343070, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: -0.022321204
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1127414539557790481, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: 0.100326866
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1239497654434244758, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.x
|
||||
value: 0.0057383254
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1239497654434244758, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: 0.0027651554
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1340527944349289928, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.x
|
||||
value: -0.0031205534
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1340527944349289928, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: 0.016465206
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1496666803027742699, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: -0.00042612734
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1808420173214174992, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.x
|
||||
value: -0.2784152
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1808420173214174992, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: 0.00000037625432
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1856326131723110599, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.x
|
||||
value: 0.045699697
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1856326131723110599, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: -0.02628017
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2015231249865073876, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.x
|
||||
value: -0.045704465
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2015231249865073876, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: -0.02627988
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2762019965930867294, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: applyROMInGamePlay
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2762019965930867294, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: debugWithLargestROM
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3770211905496810946, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: -0.025161674
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4028625926059442890, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: -0.00041222665
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4079613823659954323, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: -0.02983789
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4177175816300940728, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: RequestCamera
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5764981685078331935, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: 0.014961979
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6032172806317267978, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: 0.0027651917
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6114793560261688705, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.x
|
||||
value: -0.14123857
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6114793560261688705, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: -0.0020052998
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6499578195492720033, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: 0.002861564
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7079208600320329709, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.x
|
||||
value: 0.14068204
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7079208600320329709, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: -0.00000000314175
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7179770322580443774, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: -0.013734171
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8149641315181257463, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.x
|
||||
value: 0.105928436
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8149641315181257463, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: -0.022320984
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8208509521937967625, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: -0.029821906
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8719875636317608491, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 7
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8719875636317608491, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8719875636317608491, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8719875636317608491, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8719875636317608491, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8719875636317608491, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8719875636317608491, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8719875636317608491, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8719875636317608491, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8719875636317608491, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8719875636317608491, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8722076229893094739, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: MarathonMan004
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9173802407982569481, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: 0.000000113621354
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9218996436316437763, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.x
|
||||
value: 0.143
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9218996436316437763, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
propertyPath: m_ParentAnchorPosition.z
|
||||
value: -0.0044048633
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents:
|
||||
- {fileID: 2762019965930867294, guid: 6a7e84e6b4b64c744857753e3e544b81, type: 3}
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents:
|
||||
- targetCorrespondingSourceObject: {fileID: 8722076229893094739, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 7412007324369319300}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 6a7e84e6b4b64c744857753e3e544b81, type: 3}
|
||||
--- !u!1 &1973854535028386212 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 8722076229893094739, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 7093028827085853943}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!114 &7412007324369319300
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1973854535028386212}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: df87ca71a84fd44d9a8ffe3f75f024db, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
info2store: {fileID: 0}
|
||||
debugWithLargestROM: 0
|
||||
extraoffset: 10
|
||||
--- !u!4 &1976157281100074716 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 8719875636317608491, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 7093028827085853943}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!171741748 &5003744890765894587 stripped
|
||||
ArticulationBody:
|
||||
m_CorrespondingSourceObject: {fileID: 2819076709843220300, guid: 6a7e84e6b4b64c744857753e3e544b81,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 7093028827085853943}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &8663897799653336881
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 1714340263721781765}
|
||||
m_Modifications:
|
||||
- target: {fileID: 392232339659560021, guid: 0db68a8912718904d967ab56e13a1785,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: AgentMove-source
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3686799810742117958, guid: 0db68a8912718904d967ab56e13a1785,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 6
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3686799810742117958, guid: 0db68a8912718904d967ab56e13a1785,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3686799810742117958, guid: 0db68a8912718904d967ab56e13a1785,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3686799810742117958, guid: 0db68a8912718904d967ab56e13a1785,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 0db68a8912718904d967ab56e13a1785, type: 3}
|
||||
--- !u!4 &5410650273635025271 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 3686799810742117958, guid: 0db68a8912718904d967ab56e13a1785,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 8663897799653336881}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &9028912518352089956 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 392232339659560021, guid: 0db68a8912718904d967ab56e13a1785,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 8663897799653336881}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
7
Assets/MarathonEnvs/Environments/DReCon-v0.prefab.meta
generated
Normal file
7
Assets/MarathonEnvs/Environments/DReCon-v0.prefab.meta
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 039f5bf4e1cc0214ea4f370014f59897
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
410
Assets/MarathonEnvs/Environments/TrackEnv-v0.prefab
generated
Normal file
410
Assets/MarathonEnvs/Environments/TrackEnv-v0.prefab
generated
Normal file
@@ -0,0 +1,410 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &3499865627114767964
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4810550302162678093}
|
||||
- component: {fileID: 1051232446198004159}
|
||||
- component: {fileID: 5042751036087727410}
|
||||
- component: {fileID: 4594414822486591350}
|
||||
m_Layer: 0
|
||||
m_Name: Terrain
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 4294967295
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4810550302162678093
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3499865627114767964}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -10, y: 0, z: -0.5}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2608565721708774061}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!218 &1051232446198004159
|
||||
Terrain:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3499865627114767964}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 6
|
||||
m_TerrainData: {fileID: 15600000, guid: 655b00e2b1d9d48a3ba520773f6bf706, type: 2}
|
||||
m_TreeDistance: 2000
|
||||
m_TreeBillboardDistance: 50
|
||||
m_TreeCrossFadeLength: 5
|
||||
m_TreeMaximumFullLODCount: 50
|
||||
m_DetailObjectDistance: 0
|
||||
m_DetailObjectDensity: 1
|
||||
m_HeightmapPixelError: 5
|
||||
m_SplatMapDistance: 1000
|
||||
m_HeightmapMaximumLOD: 0
|
||||
m_ShadowCastingMode: 2
|
||||
m_DrawHeightmap: 1
|
||||
m_DrawInstanced: 0
|
||||
m_DrawTreesAndFoliage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_MaterialTemplate: {fileID: 10652, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_BakeLightProbesForTrees: 0
|
||||
m_PreserveTreePrototypeLayers: 0
|
||||
m_DeringLightProbesForTrees: 0
|
||||
m_ScaleInLightmap: 0.4
|
||||
m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_GroupingID: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_AllowAutoConnect: 1
|
||||
--- !u!154 &5042751036087727410
|
||||
TerrainCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3499865627114767964}
|
||||
m_Material: {fileID: 13400000, guid: b9c123ed1464e44adbfe0f4b3a874890, type: 2}
|
||||
m_Enabled: 1
|
||||
m_TerrainData: {fileID: 15600000, guid: 655b00e2b1d9d48a3ba520773f6bf706, type: 2}
|
||||
m_EnableTreeColliders: 1
|
||||
--- !u!114 &4594414822486591350
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3499865627114767964}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 68231b96042614ce992397230a3bb5fd, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &3670844839002173321
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6392590009493042066}
|
||||
- component: {fileID: 4606189183019907195}
|
||||
- component: {fileID: 2749422264313137166}
|
||||
- component: {fileID: 473651587987859469}
|
||||
m_Layer: 0
|
||||
m_Name: 500x1
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 4294967295
|
||||
m_IsActive: 0
|
||||
--- !u!4 &6392590009493042066
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3670844839002173321}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -10, y: 0, z: -0.5}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2608565721708774061}
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!218 &4606189183019907195
|
||||
Terrain:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3670844839002173321}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 6
|
||||
m_TerrainData: {fileID: 15600000, guid: cfe2f6982d41d43f1981909e78e77df2, type: 2}
|
||||
m_TreeDistance: 5000
|
||||
m_TreeBillboardDistance: 50
|
||||
m_TreeCrossFadeLength: 5
|
||||
m_TreeMaximumFullLODCount: 50
|
||||
m_DetailObjectDistance: 80
|
||||
m_DetailObjectDensity: 1
|
||||
m_HeightmapPixelError: 5
|
||||
m_SplatMapDistance: 1000
|
||||
m_HeightmapMaximumLOD: 0
|
||||
m_ShadowCastingMode: 2
|
||||
m_DrawHeightmap: 1
|
||||
m_DrawInstanced: 0
|
||||
m_DrawTreesAndFoliage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_MaterialTemplate: {fileID: 10652, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_BakeLightProbesForTrees: 0
|
||||
m_PreserveTreePrototypeLayers: 0
|
||||
m_DeringLightProbesForTrees: 0
|
||||
m_ScaleInLightmap: 0.4
|
||||
m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_GroupingID: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_AllowAutoConnect: 1
|
||||
--- !u!154 &2749422264313137166
|
||||
TerrainCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3670844839002173321}
|
||||
m_Material: {fileID: 13400000, guid: b9c123ed1464e44adbfe0f4b3a874890, type: 2}
|
||||
m_Enabled: 1
|
||||
m_TerrainData: {fileID: 15600000, guid: cfe2f6982d41d43f1981909e78e77df2, type: 2}
|
||||
m_EnableTreeColliders: 1
|
||||
--- !u!114 &473651587987859469
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3670844839002173321}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 68231b96042614ce992397230a3bb5fd, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &5965315998760433598
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4220755503070646539}
|
||||
- component: {fileID: 7414326445189651963}
|
||||
- component: {fileID: 6734805552995975707}
|
||||
- component: {fileID: 6547520909157655661}
|
||||
m_Layer: 0
|
||||
m_Name: 200x200
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 4294967295
|
||||
m_IsActive: 0
|
||||
--- !u!4 &4220755503070646539
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5965315998760433598}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -10, y: 0, z: -100}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2608565721708774061}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!218 &7414326445189651963
|
||||
Terrain:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5965315998760433598}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 6
|
||||
m_TerrainData: {fileID: 15600000, guid: 3d8ea6d1c66b94880891dd6eecead370, type: 2}
|
||||
m_TreeDistance: 5000
|
||||
m_TreeBillboardDistance: 50
|
||||
m_TreeCrossFadeLength: 5
|
||||
m_TreeMaximumFullLODCount: 50
|
||||
m_DetailObjectDistance: 80
|
||||
m_DetailObjectDensity: 1
|
||||
m_HeightmapPixelError: 5
|
||||
m_SplatMapDistance: 1000
|
||||
m_HeightmapMaximumLOD: 0
|
||||
m_ShadowCastingMode: 2
|
||||
m_DrawHeightmap: 1
|
||||
m_DrawInstanced: 0
|
||||
m_DrawTreesAndFoliage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_MaterialTemplate: {fileID: 10652, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_BakeLightProbesForTrees: 0
|
||||
m_PreserveTreePrototypeLayers: 0
|
||||
m_DeringLightProbesForTrees: 0
|
||||
m_ScaleInLightmap: 0.4
|
||||
m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_GroupingID: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_AllowAutoConnect: 1
|
||||
--- !u!154 &6734805552995975707
|
||||
TerrainCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5965315998760433598}
|
||||
m_Material: {fileID: 13400000, guid: b9c123ed1464e44adbfe0f4b3a874890, type: 2}
|
||||
m_Enabled: 1
|
||||
m_TerrainData: {fileID: 15600000, guid: 3d8ea6d1c66b94880891dd6eecead370, type: 2}
|
||||
m_EnableTreeColliders: 1
|
||||
--- !u!114 &6547520909157655661
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5965315998760433598}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 68231b96042614ce992397230a3bb5fd, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &8081357739622870871
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2608565721708774061}
|
||||
- component: {fileID: 8087028546548217645}
|
||||
m_Layer: 0
|
||||
m_Name: TrackEnv-v0
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2608565721708774061
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8081357739622870871}
|
||||
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: 4810550302162678093}
|
||||
- {fileID: 4220755503070646539}
|
||||
- {fileID: 6392590009493042066}
|
||||
- {fileID: 371211994496726598}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &8087028546548217645
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8081357739622870871}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: a5ee228c95df445dfb46077fb9d6a66d, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
UseManyWorlds: 0
|
||||
paddingBetweenEnvs: 1
|
||||
bounds:
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
m_Extent: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &8686670818618531365
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 371211994496726598}
|
||||
- component: {fileID: 1062859615773466043}
|
||||
- component: {fileID: 5126846877394047990}
|
||||
- component: {fileID: 9013813216508276979}
|
||||
m_Layer: 0
|
||||
m_Name: 500x3
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 4294967295
|
||||
m_IsActive: 0
|
||||
--- !u!4 &371211994496726598
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8686670818618531365}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -10, y: 0, z: -1.5}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2608565721708774061}
|
||||
m_RootOrder: 3
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!218 &1062859615773466043
|
||||
Terrain:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8686670818618531365}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 6
|
||||
m_TerrainData: {fileID: 15600000, guid: 99bc30d6ea40ed3479f074807921bf10, type: 2}
|
||||
m_TreeDistance: 5000
|
||||
m_TreeBillboardDistance: 50
|
||||
m_TreeCrossFadeLength: 5
|
||||
m_TreeMaximumFullLODCount: 50
|
||||
m_DetailObjectDistance: 80
|
||||
m_DetailObjectDensity: 1
|
||||
m_HeightmapPixelError: 5
|
||||
m_SplatMapDistance: 1000
|
||||
m_HeightmapMaximumLOD: 0
|
||||
m_ShadowCastingMode: 2
|
||||
m_DrawHeightmap: 1
|
||||
m_DrawInstanced: 0
|
||||
m_DrawTreesAndFoliage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_MaterialTemplate: {fileID: 10652, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_BakeLightProbesForTrees: 0
|
||||
m_PreserveTreePrototypeLayers: 0
|
||||
m_DeringLightProbesForTrees: 0
|
||||
m_ScaleInLightmap: 0.0512
|
||||
m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_GroupingID: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_AllowAutoConnect: 1
|
||||
--- !u!154 &5126846877394047990
|
||||
TerrainCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8686670818618531365}
|
||||
m_Material: {fileID: 13400000, guid: b9c123ed1464e44adbfe0f4b3a874890, type: 2}
|
||||
m_Enabled: 1
|
||||
m_TerrainData: {fileID: 15600000, guid: 99bc30d6ea40ed3479f074807921bf10, type: 2}
|
||||
m_EnableTreeColliders: 0
|
||||
--- !u!114 &9013813216508276979
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8686670818618531365}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 68231b96042614ce992397230a3bb5fd, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
7
Assets/MarathonEnvs/Environments/TrackEnv-v0.prefab.meta
generated
Normal file
7
Assets/MarathonEnvs/Environments/TrackEnv-v0.prefab.meta
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c7f549aabbce548e7aae2b2101ae3062
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/MarathonEnvs/PhysicsMaterials.meta
generated
Normal file
8
Assets/MarathonEnvs/PhysicsMaterials.meta
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ff22533e50558b540bf2ae9ced967e9c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
13
Assets/MarathonEnvs/PhysicsMaterials/Actor.physicMaterial
Normal file
13
Assets/MarathonEnvs/PhysicsMaterials/Actor.physicMaterial
Normal file
@@ -0,0 +1,13 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!134 &13400000
|
||||
PhysicMaterial:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name: Actor
|
||||
dynamicFriction: 2
|
||||
staticFriction: 2
|
||||
bounciness: 0
|
||||
frictionCombine: 3
|
||||
bounceCombine: 0
|
||||
10
Assets/MarathonEnvs/PhysicsMaterials/Actor.physicMaterial.meta
generated
Normal file
10
Assets/MarathonEnvs/PhysicsMaterials/Actor.physicMaterial.meta
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 38b7ea504254a4fa986e42a7bb16c8df
|
||||
timeCreated: 1515892485
|
||||
licenseType: Free
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 13400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
13
Assets/MarathonEnvs/PhysicsMaterials/Ground.physicMaterial
Normal file
13
Assets/MarathonEnvs/PhysicsMaterials/Ground.physicMaterial
Normal file
@@ -0,0 +1,13 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!134 &13400000
|
||||
PhysicMaterial:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name: Ground
|
||||
dynamicFriction: 1000
|
||||
staticFriction: 1000
|
||||
bounciness: 0
|
||||
frictionCombine: 2
|
||||
bounceCombine: 0
|
||||
10
Assets/MarathonEnvs/PhysicsMaterials/Ground.physicMaterial.meta
generated
Normal file
10
Assets/MarathonEnvs/PhysicsMaterials/Ground.physicMaterial.meta
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b9c123ed1464e44adbfe0f4b3a874890
|
||||
timeCreated: 1515892465
|
||||
licenseType: Free
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 13400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/MarathonEnvs/Scripts.meta
generated
Normal file
8
Assets/MarathonEnvs/Scripts.meta
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2af4f7d7b13cb8a4da714983df8eaded
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/MarathonEnvs/Scripts/OriginalAgents.meta
generated
Normal file
8
Assets/MarathonEnvs/Scripts/OriginalAgents.meta
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4add1e84a05e3234d886e655a3f598ce
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,99 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using Unity.MLAgents;
|
||||
using Unity.MLAgents.Actuators;
|
||||
using Unity.MLAgents.Sensors;
|
||||
public class DeepMindHopperAgent : MarathonAgent
|
||||
{
|
||||
|
||||
public List<float> RewardHackingVector;
|
||||
|
||||
public override void OnEpisodeBegin()
|
||||
{
|
||||
base.OnEpisodeBegin();
|
||||
|
||||
// set to true this to show monitor while training
|
||||
//Monitor.SetActive(true);
|
||||
|
||||
StepRewardFunction = StepRewardHopper101;
|
||||
TerminateFunction = TerminateOnNonFootHitTerrain;
|
||||
ObservationsFunction = ObservationsDefault;
|
||||
|
||||
BodyParts["pelvis"] = GetComponentsInChildren<Rigidbody>().FirstOrDefault(x => x.name == "torso");
|
||||
BodyParts["foot"] = GetComponentsInChildren<Rigidbody>().FirstOrDefault(x => x.name == "foot");
|
||||
SetupBodyParts();
|
||||
}
|
||||
|
||||
void ObservationsDefault(VectorSensor sensor)
|
||||
{
|
||||
if (ShowMonitor)
|
||||
{
|
||||
}
|
||||
|
||||
var pelvis = BodyParts["pelvis"];
|
||||
Vector3 normalizedVelocity = this.GetNormalizedVelocity(pelvis.velocity);
|
||||
sensor.AddObservation(normalizedVelocity);
|
||||
sensor.AddObservation(pelvis.transform.forward); // gyroscope
|
||||
sensor.AddObservation(pelvis.transform.up);
|
||||
|
||||
sensor.AddObservation(SensorIsInTouch);
|
||||
JointRotations.ForEach(x => sensor.AddObservation(x));
|
||||
sensor.AddObservation(JointVelocity);
|
||||
var foot = BodyParts["foot"];
|
||||
Vector3 normalizedFootPosition = this.GetNormalizedPosition(foot.transform.position);
|
||||
sensor.AddObservation(normalizedFootPosition.y);
|
||||
}
|
||||
|
||||
float GetRewardOnEpisodeComplete()
|
||||
{
|
||||
return FocalPoint.transform.position.x;
|
||||
}
|
||||
|
||||
void UpdateRewardHackingVector()
|
||||
{
|
||||
// float uprightBonus = GetForwardBonus("pelvis");
|
||||
float uprightBonus = GetDirectionBonus("pelvis", Vector3.forward, 1f);
|
||||
uprightBonus = Mathf.Clamp(uprightBonus, 0f, 1f);
|
||||
float velocity = Mathf.Clamp(GetNormalizedVelocity("pelvis").x, 0f, 1f);
|
||||
float position = Mathf.Clamp(GetNormalizedPosition("pelvis").x, 0f, 1f);
|
||||
float effort = 1f - GetEffortNormalized();
|
||||
|
||||
if (RewardHackingVector?.Count == 0)
|
||||
RewardHackingVector = Enumerable.Range(0, 6).Select(x => 0f).ToList();
|
||||
RewardHackingVector[0] = velocity;
|
||||
RewardHackingVector[1] = position;
|
||||
RewardHackingVector[2] = effort;
|
||||
RewardHackingVector[3] = uprightBonus;
|
||||
}
|
||||
|
||||
float StepRewardHopper101()
|
||||
{
|
||||
UpdateRewardHackingVector();
|
||||
float uprightBonus = GetDirectionBonus("pelvis", Vector3.forward, 1f);
|
||||
uprightBonus = Mathf.Clamp(uprightBonus, 0f, 1f);
|
||||
float velocity = Mathf.Clamp(GetNormalizedVelocity("pelvis").x, 0f, 1f);
|
||||
// float position = Mathf.Clamp(GetNormalizedPosition("pelvis").x, 0f, 1f);
|
||||
float effort = 1f - GetEffortNormalized();
|
||||
|
||||
uprightBonus *= 0.05f;
|
||||
velocity *= 0.7f;
|
||||
if (velocity >= .25f)
|
||||
effort *= 0.25f;
|
||||
else
|
||||
effort *= velocity;
|
||||
|
||||
var reward = velocity
|
||||
+ uprightBonus
|
||||
+ effort;
|
||||
if (ShowMonitor)
|
||||
{
|
||||
//var hist = new[] {reward, velocity, uprightBonus, effort};
|
||||
//Monitor.Log("rewardHist", hist, displayType: Monitor.DisplayType.Independent);
|
||||
}
|
||||
|
||||
return reward;
|
||||
}
|
||||
}
|
||||
11
Assets/MarathonEnvs/Scripts/OriginalAgents/DeepMindHopperAgent.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/OriginalAgents/DeepMindHopperAgent.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c8e0e8a6cb2e04a0b89d72c85942082d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,82 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using Unity.MLAgents;
|
||||
using Unity.MLAgents.Actuators;
|
||||
using Unity.MLAgents.Sensors;
|
||||
|
||||
public class DeepMindWalkerAgent : MarathonAgent
|
||||
{
|
||||
public override void OnEpisodeBegin()
|
||||
{
|
||||
base.OnEpisodeBegin();
|
||||
|
||||
// set to true this to show monitor while training
|
||||
//Monitor.SetActive(true);
|
||||
|
||||
StepRewardFunction = StepRewardWalker106;
|
||||
TerminateFunction = TerminateOnNonFootHitTerrain;
|
||||
ObservationsFunction = ObservationsDefault;
|
||||
|
||||
BodyParts["pelvis"] = GetComponentsInChildren<Rigidbody>().FirstOrDefault(x => x.name == "torso");
|
||||
BodyParts["left_thigh"] = GetComponentsInChildren<Rigidbody>().FirstOrDefault(x => x.name == "left_thigh");
|
||||
BodyParts["right_thigh"] = GetComponentsInChildren<Rigidbody>().FirstOrDefault(x => x.name == "right_thigh");
|
||||
BodyParts["right_foot"] = GetComponentsInChildren<Rigidbody>().FirstOrDefault(x => x.name == "right_foot");
|
||||
BodyParts["left_foot"] = GetComponentsInChildren<Rigidbody>().FirstOrDefault(x => x.name == "left_foot");
|
||||
SetupBodyParts();
|
||||
}
|
||||
|
||||
void ObservationsDefault(VectorSensor sensor)
|
||||
{
|
||||
if (ShowMonitor)
|
||||
{
|
||||
}
|
||||
|
||||
var pelvis = BodyParts["pelvis"];
|
||||
Vector3 normalizedVelocity = this.GetNormalizedVelocity(pelvis.velocity);
|
||||
sensor.AddObservation(normalizedVelocity);
|
||||
sensor.AddObservation(pelvis.transform.forward); // gyroscope
|
||||
sensor.AddObservation(pelvis.transform.up);
|
||||
|
||||
sensor.AddObservation(SensorIsInTouch);
|
||||
JointRotations.ForEach(x => sensor.AddObservation(x));
|
||||
sensor.AddObservation(JointVelocity);
|
||||
sensor.AddObservation(new []{
|
||||
this.GetNormalizedPosition(BodyParts["left_foot"].transform.position).y,
|
||||
this.GetNormalizedPosition(BodyParts["right_foot"].transform.position).y
|
||||
});
|
||||
}
|
||||
|
||||
float StepRewardWalker106()
|
||||
{
|
||||
float heightPenality = 1f-GetHeightPenality(1.1f);
|
||||
heightPenality = Mathf.Clamp(heightPenality, 0f, 1f);
|
||||
float uprightBonus = GetDirectionBonus("pelvis", Vector3.forward, 1f);
|
||||
uprightBonus = Mathf.Clamp(uprightBonus, 0f, 1f);
|
||||
float velocity = Mathf.Clamp(GetNormalizedVelocity("pelvis").x, 0f, 1f);
|
||||
float effort = 1f - GetEffortNormalized();
|
||||
|
||||
//if (ShowMonitor)
|
||||
//{
|
||||
// var hist = new[] {velocity, uprightBonus, heightPenality, effort}.ToList();
|
||||
// Monitor.Log("rewardHist", hist.ToArray(), displayType: Monitor.DisplayType.Independent);
|
||||
//}
|
||||
|
||||
heightPenality *= 0.05f;
|
||||
uprightBonus *= 0.05f;
|
||||
velocity *= 0.4f;
|
||||
if (velocity >= .4f)
|
||||
effort *= 0.4f;
|
||||
else
|
||||
effort *= velocity;
|
||||
|
||||
var reward = velocity
|
||||
+ uprightBonus
|
||||
+ heightPenality
|
||||
+ effort;
|
||||
|
||||
return reward;
|
||||
}
|
||||
}
|
||||
11
Assets/MarathonEnvs/Scripts/OriginalAgents/DeepMindWalkerAgent.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/OriginalAgents/DeepMindWalkerAgent.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9077dc2f53ed9427e995a11ce8489a1b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
197
Assets/MarathonEnvs/Scripts/OriginalAgents/MarathonManAgent.cs
Normal file
197
Assets/MarathonEnvs/Scripts/OriginalAgents/MarathonManAgent.cs
Normal file
@@ -0,0 +1,197 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using Unity.MLAgents;
|
||||
using Unity.MLAgents.Actuators;
|
||||
using Unity.MLAgents.Sensors;
|
||||
using System.Linq;
|
||||
using static BodyHelper002;
|
||||
|
||||
public class MarathonManAgent : Agent, IOnTerrainCollision
|
||||
{
|
||||
BodyManager002 _bodyManager;
|
||||
bool _isDone;
|
||||
bool _hasLazyInitialized;
|
||||
|
||||
public static BodyConfig BodyConfig = new BodyConfig
|
||||
{
|
||||
GetBodyPartGroup = (name) =>
|
||||
{
|
||||
name = name.ToLower();
|
||||
if (name.Contains("mixamorig"))
|
||||
return BodyPartGroup.None;
|
||||
|
||||
if (name.Contains("butt"))
|
||||
return BodyPartGroup.Hips;
|
||||
if (name.Contains("torso"))
|
||||
return BodyPartGroup.Torso;
|
||||
if (name.Contains("head"))
|
||||
return BodyPartGroup.Head;
|
||||
if (name.Contains("waist"))
|
||||
return BodyPartGroup.Spine;
|
||||
|
||||
if (name.Contains("thigh"))
|
||||
return BodyPartGroup.LegUpper;
|
||||
if (name.Contains("shin"))
|
||||
return BodyPartGroup.LegLower;
|
||||
if (name.Contains("right_right_foot") || name.Contains("left_left_foot"))
|
||||
return BodyPartGroup.Foot;
|
||||
if (name.Contains("upper_arm"))
|
||||
return BodyPartGroup.ArmUpper;
|
||||
if (name.Contains("larm"))
|
||||
return BodyPartGroup.ArmLower;
|
||||
if (name.Contains("hand"))
|
||||
return BodyPartGroup.Hand;
|
||||
|
||||
return BodyPartGroup.None;
|
||||
},
|
||||
GetMuscleGroup = (name) =>
|
||||
{
|
||||
name = name.ToLower();
|
||||
if (name.Contains("mixamorig"))
|
||||
return MuscleGroup.None;
|
||||
if (name.Contains("butt"))
|
||||
return MuscleGroup.Hips;
|
||||
if (name.Contains("lower_waist")
|
||||
|| name.Contains("abdomen_y"))
|
||||
return MuscleGroup.Spine;
|
||||
if (name.Contains("thigh")
|
||||
|| name.Contains("hip"))
|
||||
return MuscleGroup.LegUpper;
|
||||
if (name.Contains("shin"))
|
||||
return MuscleGroup.LegLower;
|
||||
if (name.Contains("right_right_foot")
|
||||
|| name.Contains("left_left_foot")
|
||||
|| name.Contains("ankle_x"))
|
||||
return MuscleGroup.Foot;
|
||||
if (name.Contains("upper_arm"))
|
||||
return MuscleGroup.ArmUpper;
|
||||
if (name.Contains("larm"))
|
||||
return MuscleGroup.ArmLower;
|
||||
if (name.Contains("hand"))
|
||||
return MuscleGroup.Hand;
|
||||
|
||||
return MuscleGroup.None;
|
||||
},
|
||||
GetRootBodyPart = () => BodyPartGroup.Hips,
|
||||
GetRootMuscle = () => MuscleGroup.Hips
|
||||
};
|
||||
|
||||
|
||||
|
||||
override public void CollectObservations(VectorSensor sensor)
|
||||
{
|
||||
if (!_hasLazyInitialized)
|
||||
{
|
||||
OnEpisodeBegin();
|
||||
}
|
||||
|
||||
Vector3 normalizedVelocity = _bodyManager.GetNormalizedVelocity();
|
||||
var pelvis = _bodyManager.GetFirstBodyPart(BodyPartGroup.Hips);
|
||||
var shoulders = _bodyManager.GetFirstBodyPart(BodyPartGroup.Torso);
|
||||
|
||||
sensor.AddObservation(normalizedVelocity);
|
||||
sensor.AddObservation(pelvis.Rigidbody.transform.forward); // gyroscope
|
||||
sensor.AddObservation(pelvis.Rigidbody.transform.up);
|
||||
|
||||
sensor.AddObservation(shoulders.Rigidbody.transform.forward); // gyroscope
|
||||
sensor.AddObservation(shoulders.Rigidbody.transform.up);
|
||||
|
||||
sensor.AddObservation(_bodyManager.GetSensorIsInTouch());
|
||||
foreach (var bodyPart in _bodyManager.BodyParts)
|
||||
{
|
||||
bodyPart.UpdateObservations();
|
||||
sensor.AddObservation(bodyPart.ObsLocalPosition);
|
||||
sensor.AddObservation(bodyPart.ObsRotation);
|
||||
sensor.AddObservation(bodyPart.ObsRotationVelocity);
|
||||
sensor.AddObservation(bodyPart.ObsVelocity);
|
||||
}
|
||||
sensor.AddObservation(_bodyManager.GetSensorObservations());
|
||||
|
||||
// _bodyManager.OnCollectObservationsHandleDebug(GetInfo());
|
||||
}
|
||||
|
||||
public override void OnActionReceived(ActionBuffers actions)
|
||||
{
|
||||
float[] vectorAction = actions.ContinuousActions.Select(x=>x).ToArray();
|
||||
|
||||
if (!_hasLazyInitialized)
|
||||
{
|
||||
return;
|
||||
}
|
||||
_isDone = false;
|
||||
// apply actions to body
|
||||
_bodyManager.OnAgentAction(vectorAction);
|
||||
|
||||
// manage reward
|
||||
float velocity = Mathf.Clamp(_bodyManager.GetNormalizedVelocity().x, 0f, 1f);
|
||||
var actionDifference = _bodyManager.GetActionDifference();
|
||||
var actionsAbsolute = vectorAction.Select(x=>Mathf.Abs(x)).ToList();
|
||||
var actionsAtLimit = actionsAbsolute.Select(x=> x>=1f ? 1f : 0f).ToList();
|
||||
float actionaAtLimitCount = actionsAtLimit.Sum();
|
||||
float notAtLimitBonus = 1f - (actionaAtLimitCount / (float) actionsAbsolute.Count);
|
||||
float reducedPowerBonus = 1f - actionsAbsolute.Average();
|
||||
|
||||
// velocity *= 0.85f;
|
||||
// reducedPowerBonus *=0f;
|
||||
// notAtLimitBonus *=.1f;
|
||||
// actionDifference *=.05f;
|
||||
// var reward = velocity
|
||||
// + notAtLimitBonus
|
||||
// + reducedPowerBonus
|
||||
// + actionDifference;
|
||||
var pelvis = _bodyManager.GetFirstBodyPart(BodyPartGroup.Hips);
|
||||
if (pelvis.Transform.position.y<0){
|
||||
EndEpisode();
|
||||
}
|
||||
|
||||
var reward = velocity;
|
||||
|
||||
AddReward(reward);
|
||||
_bodyManager.SetDebugFrameReward(reward);
|
||||
}
|
||||
|
||||
public override void OnEpisodeBegin()
|
||||
{
|
||||
if (!_hasLazyInitialized)
|
||||
{
|
||||
_bodyManager = GetComponent<BodyManager002>();
|
||||
_bodyManager.BodyConfig = MarathonManAgent.BodyConfig;
|
||||
_bodyManager.OnInitializeAgent();
|
||||
_hasLazyInitialized = true;
|
||||
}
|
||||
_isDone = true;
|
||||
_bodyManager.OnAgentReset();
|
||||
}
|
||||
public virtual void OnTerrainCollision(GameObject other, GameObject terrain)
|
||||
{
|
||||
// if (string.Compare(terrain.name, "Terrain", true) != 0)
|
||||
if (terrain.GetComponent<Terrain>() == null)
|
||||
return;
|
||||
// if (!_styleAnimator.AnimationStepsReady)
|
||||
// return;
|
||||
// HACK - for when agent has not been initialized
|
||||
if (_bodyManager == null)
|
||||
return;
|
||||
var bodyPart = _bodyManager.BodyParts.FirstOrDefault(x=>x.Transform.gameObject == other);
|
||||
if (bodyPart == null)
|
||||
return;
|
||||
switch (bodyPart.Group)
|
||||
{
|
||||
case BodyHelper002.BodyPartGroup.None:
|
||||
case BodyHelper002.BodyPartGroup.Foot:
|
||||
// case BodyHelper002.BodyPartGroup.LegUpper:
|
||||
case BodyHelper002.BodyPartGroup.LegLower:
|
||||
case BodyHelper002.BodyPartGroup.Hand:
|
||||
// case BodyHelper002.BodyPartGroup.ArmLower:
|
||||
// case BodyHelper002.BodyPartGroup.ArmUpper:
|
||||
break;
|
||||
default:
|
||||
// AddReward(-100f);
|
||||
if (!_isDone){
|
||||
EndEpisode();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/MarathonEnvs/Scripts/OriginalAgents/MarathonManAgent.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/OriginalAgents/MarathonManAgent.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 92cfc2ffe17d245ee822312e5451327c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,51 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Unity.MLAgents;
|
||||
using UnityEngine;
|
||||
|
||||
public class MarathonTestBedDecision //: Decision
|
||||
{
|
||||
// Brain _brain;
|
||||
|
||||
// MarathonTestBedController _controller;
|
||||
|
||||
|
||||
// // [Tooltip("Lock the top most element")]
|
||||
// // /**< \brief Lock the top most element*/
|
||||
// // public bool FreezeTop = false;
|
||||
// // bool _lastFreezeTop;
|
||||
|
||||
// public override float[] Decide(
|
||||
// List<float> vectorObs,
|
||||
// List<Texture2D> visualObs,
|
||||
// float reward,
|
||||
// bool done,
|
||||
// List<float> memory)
|
||||
// {
|
||||
// // lazy init
|
||||
// if (_controller == null)
|
||||
// {
|
||||
// _controller = FindObjectOfType<MarathonTestBedController>();
|
||||
// // _brain = GetComponent<Brain>();
|
||||
// // Actions = Enumerable.Repeat(0f, _brain.brainParameters.vectorActionSize[0]).ToArray();
|
||||
// // Actions = Enumerable.Repeat(0f, 100).ToArray();
|
||||
// }
|
||||
// if (_controller.ApplyRandomActions)
|
||||
// {
|
||||
// for (int i = 0; i < _controller.Actions.Length; i++)
|
||||
// _controller.Actions[i] = Random.value * 2 - 1;
|
||||
// }
|
||||
|
||||
// return _controller.Actions;
|
||||
// }
|
||||
|
||||
// public override List<float> MakeMemory(
|
||||
// List<float> vectorObs,
|
||||
// List<Texture2D> visualObs,
|
||||
// float reward,
|
||||
// bool done,
|
||||
// List<float> memory)
|
||||
// {
|
||||
// return new List<float>();
|
||||
// }
|
||||
}
|
||||
11
Assets/MarathonEnvs/Scripts/OriginalAgents/MarathonTestBedDecision.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/OriginalAgents/MarathonTestBedDecision.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fae7c31d3f13347d1bc0aab79eb5bf1f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
81
Assets/MarathonEnvs/Scripts/OriginalAgents/OpenAIAntAgent.cs
Normal file
81
Assets/MarathonEnvs/Scripts/OriginalAgents/OpenAIAntAgent.cs
Normal file
@@ -0,0 +1,81 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using Unity.MLAgents;
|
||||
using Unity.MLAgents.Actuators;
|
||||
using Unity.MLAgents.Sensors;
|
||||
|
||||
public class OpenAIAntAgent : MarathonAgent
|
||||
{
|
||||
public override void OnEpisodeBegin()
|
||||
{
|
||||
base.OnEpisodeBegin();
|
||||
|
||||
// set to true this to show monitor while training
|
||||
//Monitor.SetActive(true);
|
||||
|
||||
StepRewardFunction = StepRewardAnt101;
|
||||
TerminateFunction = TerminateAnt;
|
||||
ObservationsFunction = ObservationsDefault;
|
||||
|
||||
BodyParts["pelvis"] = GetComponentsInChildren<Rigidbody>().FirstOrDefault(x => x.name == "torso_geom");
|
||||
SetupBodyParts();
|
||||
}
|
||||
|
||||
void ObservationsDefault(VectorSensor sensor)
|
||||
{
|
||||
if (ShowMonitor)
|
||||
{
|
||||
}
|
||||
|
||||
var pelvis = BodyParts["pelvis"];
|
||||
Vector3 normalizedVelocity = GetNormalizedVelocity(pelvis.velocity);
|
||||
sensor.AddObservation(normalizedVelocity);
|
||||
sensor.AddObservation(pelvis.transform.forward); // gyroscope
|
||||
sensor.AddObservation(pelvis.transform.up);
|
||||
|
||||
sensor.AddObservation(SensorIsInTouch);
|
||||
JointRotations.ForEach(x => sensor.AddObservation(x));
|
||||
sensor.AddObservation(JointVelocity);
|
||||
Vector3 normalizedFootPosition = this.GetNormalizedPosition(pelvis.transform.position);
|
||||
sensor.AddObservation(normalizedFootPosition.y);
|
||||
|
||||
}
|
||||
|
||||
bool TerminateAnt()
|
||||
{
|
||||
var pelvis = BodyParts["pelvis"];
|
||||
if (pelvis.transform.position.y<0){
|
||||
return true;
|
||||
}
|
||||
|
||||
var angle = GetForwardBonus("pelvis");
|
||||
bool endOnAngle = (angle < .2f);
|
||||
return endOnAngle;
|
||||
}
|
||||
|
||||
float StepRewardAnt101()
|
||||
{
|
||||
float velocity = Mathf.Clamp(GetNormalizedVelocity("pelvis").x, 0f, 1f);
|
||||
float effort = 1f - GetEffortNormalized();
|
||||
|
||||
velocity *= 0.7f;
|
||||
if (velocity >= .3f)
|
||||
effort *= 0.3f;
|
||||
else
|
||||
effort *= velocity;
|
||||
|
||||
|
||||
var reward = velocity
|
||||
+ effort;
|
||||
//if (ShowMonitor)
|
||||
//{
|
||||
// var hist = new[] {reward, velocity}.ToList();
|
||||
// Monitor.Log("rewardHist", hist.ToArray(), displayType: Monitor.DisplayType.Independent);
|
||||
//}
|
||||
|
||||
return reward;
|
||||
}
|
||||
}
|
||||
11
Assets/MarathonEnvs/Scripts/OriginalAgents/OpenAIAntAgent.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/OriginalAgents/OpenAIAntAgent.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b072f3c2a55bd48149bbbd9701c7c6af
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,216 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using Unity.MLAgents;
|
||||
using Unity.MLAgents.Actuators;
|
||||
using Unity.MLAgents.Sensors;
|
||||
using System.Linq;
|
||||
using static BodyHelper002;
|
||||
using System;
|
||||
|
||||
public class RollingAverage
|
||||
{
|
||||
List<double> _window;
|
||||
int _size;
|
||||
int _count;
|
||||
double _sum;
|
||||
double _sumOfSquares;
|
||||
public double Mean;
|
||||
public double StandardDeviation;
|
||||
|
||||
public RollingAverage(int size)
|
||||
{
|
||||
_window = new List<double>(size);
|
||||
_size = size;
|
||||
_count = 0;
|
||||
_sum = 0;
|
||||
_sumOfSquares = 0;
|
||||
}
|
||||
public double Normalize(double val)
|
||||
{
|
||||
Add(val);
|
||||
double normalized = val;
|
||||
if (StandardDeviation != 0)
|
||||
normalized = (val - Mean) / StandardDeviation;
|
||||
return normalized;
|
||||
}
|
||||
void Add (double val)
|
||||
{
|
||||
if (_count >= _size)
|
||||
{
|
||||
var removedVal = _window[0];
|
||||
_window.RemoveAt(0);
|
||||
_count--;
|
||||
_sum -= removedVal;
|
||||
_sumOfSquares -= removedVal * removedVal;
|
||||
}
|
||||
_window.Add(val);
|
||||
_count++;
|
||||
_sum += val;
|
||||
_sumOfSquares += val * val;
|
||||
// set Mean to Sum / Count,
|
||||
Mean = _sum / _count;
|
||||
// set StandardDeviation to Math.Sqrt(SumOfSquares / Count - Mean * Mean).
|
||||
StandardDeviation = Math.Sqrt(_sumOfSquares / _count - Mean * Mean);
|
||||
}
|
||||
}
|
||||
|
||||
public class SparceMarathonManAgent : Agent, IOnTerrainCollision
|
||||
{
|
||||
BodyManager002 _bodyManager;
|
||||
public float _heightReward;
|
||||
public float _torsoUprightReward;
|
||||
public float _torsoForwardReward;
|
||||
public float _hipsUprightReward;
|
||||
public float _hipsForwardReward;
|
||||
public float _notAtLimitBonus;
|
||||
public float _reducedPowerBonus;
|
||||
public float _episodeMaxDistance;
|
||||
|
||||
static RollingAverage rollingAverage;
|
||||
|
||||
bool _isDone;
|
||||
bool _hasLazyInitialized;
|
||||
|
||||
override public void CollectObservations(VectorSensor sensor)
|
||||
{
|
||||
if (!_hasLazyInitialized)
|
||||
{
|
||||
OnEpisodeBegin();
|
||||
}
|
||||
|
||||
Vector3 normalizedVelocity = _bodyManager.GetNormalizedVelocity();
|
||||
var pelvis = _bodyManager.GetFirstBodyPart(BodyPartGroup.Hips);
|
||||
var shoulders = _bodyManager.GetFirstBodyPart(BodyPartGroup.Torso);
|
||||
|
||||
sensor.AddObservation(normalizedVelocity);
|
||||
sensor.AddObservation(pelvis.Rigidbody.transform.forward); // gyroscope
|
||||
sensor.AddObservation(pelvis.Rigidbody.transform.up);
|
||||
|
||||
sensor.AddObservation(shoulders.Rigidbody.transform.forward); // gyroscope
|
||||
sensor.AddObservation(shoulders.Rigidbody.transform.up);
|
||||
|
||||
sensor.AddObservation(_bodyManager.GetSensorIsInTouch());
|
||||
foreach (var bodyPart in _bodyManager.BodyParts)
|
||||
{
|
||||
bodyPart.UpdateObservations();
|
||||
sensor.AddObservation(bodyPart.ObsLocalPosition);
|
||||
sensor.AddObservation(bodyPart.ObsRotation);
|
||||
sensor.AddObservation(bodyPart.ObsRotationVelocity);
|
||||
sensor.AddObservation(bodyPart.ObsVelocity);
|
||||
}
|
||||
sensor.AddObservation(_bodyManager.GetSensorObservations());
|
||||
|
||||
sensor.AddObservation(_notAtLimitBonus);
|
||||
sensor.AddObservation(_reducedPowerBonus);
|
||||
// _bodyManager.OnCollectObservationsHandleDebug(GetInfo());
|
||||
}
|
||||
|
||||
public override void OnActionReceived(ActionBuffers actions)
|
||||
{
|
||||
float[] vectorAction = actions.ContinuousActions.Select(x=>x).ToArray();
|
||||
|
||||
if (!_hasLazyInitialized)
|
||||
{
|
||||
return;
|
||||
}
|
||||
_isDone = false;
|
||||
// apply actions to body
|
||||
_bodyManager.OnAgentAction(vectorAction);
|
||||
|
||||
// manage reward
|
||||
var actionDifference = _bodyManager.GetActionDifference();
|
||||
var actionsAbsolute = vectorAction.Select(x=>Mathf.Abs(x)).ToList();
|
||||
var actionsAtLimit = actionsAbsolute.Select(x=> x>=1f ? 1f : 0f).ToList();
|
||||
float actionaAtLimitCount = actionsAtLimit.Sum();
|
||||
_notAtLimitBonus = 1f - (actionaAtLimitCount / (float) actionsAbsolute.Count);
|
||||
_reducedPowerBonus = 1f - actionsAbsolute.Average();
|
||||
_heightReward = _bodyManager.GetHeightNormalizedReward(1.2f);
|
||||
_torsoUprightReward = _bodyManager.GetUprightNormalizedReward(BodyPartGroup.Torso);
|
||||
_torsoForwardReward = _bodyManager.GetDirectionNormalizedReward(BodyPartGroup.Torso, Vector3.forward);
|
||||
_hipsUprightReward = _bodyManager.GetUprightNormalizedReward(BodyPartGroup.Hips);
|
||||
_hipsForwardReward = _bodyManager.GetDirectionNormalizedReward(BodyPartGroup.Hips, Vector3.forward);
|
||||
_torsoUprightReward = Mathf.Clamp(_torsoUprightReward, 0f, 1f);
|
||||
_torsoForwardReward = Mathf.Clamp(_torsoForwardReward, 0f, 1f);
|
||||
_hipsUprightReward = Mathf.Clamp(_hipsUprightReward, 0f, 1f);
|
||||
_hipsForwardReward = Mathf.Clamp(_hipsForwardReward, 0f, 1f);
|
||||
|
||||
var stepCount = StepCount > 0 ? StepCount : 1;
|
||||
if ((stepCount >= MaxStep)
|
||||
&& (MaxStep > 0))
|
||||
{
|
||||
AddEpisodeEndReward();
|
||||
}
|
||||
else{
|
||||
var pelvis = _bodyManager.GetFirstBodyPart(BodyPartGroup.Hips);
|
||||
if (pelvis.Transform.position.y<0){
|
||||
AddEpisodeEndReward();
|
||||
EndEpisode();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnEpisodeBegin()
|
||||
{
|
||||
if (!_hasLazyInitialized)
|
||||
{
|
||||
_bodyManager = GetComponent<BodyManager002>();
|
||||
_bodyManager.BodyConfig = MarathonManAgent.BodyConfig;
|
||||
_bodyManager.OnInitializeAgent();
|
||||
_hasLazyInitialized = true;
|
||||
}
|
||||
_isDone = true;
|
||||
_bodyManager.OnAgentReset();
|
||||
_episodeMaxDistance = 0f;
|
||||
if (rollingAverage == null)
|
||||
rollingAverage = new RollingAverage(100);
|
||||
}
|
||||
public virtual void OnTerrainCollision(GameObject other, GameObject terrain)
|
||||
{
|
||||
// if (string.Compare(terrain.name, "Terrain", true) != 0)
|
||||
if (terrain.GetComponent<Terrain>() == null)
|
||||
return;
|
||||
// if (!_styleAnimator.AnimationStepsReady)
|
||||
// return;
|
||||
// HACK - for when agent has not been initialized
|
||||
if (_bodyManager == null)
|
||||
return;
|
||||
var bodyPart = _bodyManager.BodyParts.FirstOrDefault(x=>x.Transform.gameObject == other);
|
||||
if (bodyPart == null)
|
||||
return;
|
||||
switch (bodyPart.Group)
|
||||
{
|
||||
case BodyHelper002.BodyPartGroup.Foot:
|
||||
_episodeMaxDistance = _bodyManager.GetNormalizedPosition().x;
|
||||
break;
|
||||
case BodyHelper002.BodyPartGroup.None:
|
||||
// case BodyHelper002.BodyPartGroup.LegUpper:
|
||||
case BodyHelper002.BodyPartGroup.LegLower:
|
||||
case BodyHelper002.BodyPartGroup.Hand:
|
||||
// case BodyHelper002.BodyPartGroup.ArmLower:
|
||||
// case BodyHelper002.BodyPartGroup.ArmUpper:
|
||||
break;
|
||||
default:
|
||||
// AddReward(-100f);
|
||||
if (!_isDone){
|
||||
AddEpisodeEndReward();
|
||||
EndEpisode();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void AddEpisodeEndReward()
|
||||
{
|
||||
var reward = _episodeMaxDistance;
|
||||
|
||||
AddReward(reward);
|
||||
_bodyManager.SetDebugFrameReward(reward);
|
||||
|
||||
// # normalized reward
|
||||
// float normalizedReward = (float)rollingAverage.Normalize(reward);
|
||||
// normalizedReward += (float)rollingAverage.Mean;
|
||||
// AddReward(normalizedReward);
|
||||
// _bodyManager.SetDebugFrameReward(normalizedReward);
|
||||
}
|
||||
}
|
||||
11
Assets/MarathonEnvs/Scripts/OriginalAgents/SparceMarathonManAgent.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/OriginalAgents/SparceMarathonManAgent.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4ab14e49bdf8644ca9c2a67e85f3a11e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
152
Assets/MarathonEnvs/Scripts/OriginalAgents/TerrainAntAgent.cs
Normal file
152
Assets/MarathonEnvs/Scripts/OriginalAgents/TerrainAntAgent.cs
Normal file
@@ -0,0 +1,152 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using Unity.MLAgents;
|
||||
using Unity.MLAgents.Actuators;
|
||||
using Unity.MLAgents.Sensors;
|
||||
|
||||
public class TerrainAntAgent : MarathonAgent {
|
||||
|
||||
TerrainGenerator _terrainGenerator;
|
||||
int _lastXPosInMeters;
|
||||
int _stepCountAtLastMeter;
|
||||
float _pain;
|
||||
Vector3 _centerOfMass;
|
||||
|
||||
public override void OnEpisodeBegin()
|
||||
{
|
||||
base.OnEpisodeBegin();
|
||||
|
||||
BodyParts["pelvis"] = GetComponentsInChildren<Rigidbody>().FirstOrDefault(x => x.name == "torso_geom");
|
||||
|
||||
SetCenterOfMass();
|
||||
|
||||
if (_terrainGenerator == null)
|
||||
_terrainGenerator = GetComponent<TerrainGenerator>();
|
||||
_lastXPosInMeters = (int) BodyParts["pelvis"].transform.position.x;
|
||||
_terrainGenerator.Reset();
|
||||
|
||||
// set to true this to show monitor while training
|
||||
//Monitor.SetActive(true);
|
||||
|
||||
StepRewardFunction = StepRewardAnt101;
|
||||
TerminateFunction = LocalTerminate;
|
||||
ObservationsFunction = ObservationsDefault;
|
||||
OnTerminateRewardValue = 0f;
|
||||
// OnTerminateRewardValue = -100f;
|
||||
_pain = 0f;
|
||||
|
||||
base.SetupBodyParts();
|
||||
SetCenterOfMass();
|
||||
}
|
||||
|
||||
bool LocalTerminate()
|
||||
{
|
||||
int newXPosInMeters = (int) BodyParts["pelvis"].transform.position.x;
|
||||
if (newXPosInMeters > _lastXPosInMeters) {
|
||||
_lastXPosInMeters = newXPosInMeters;
|
||||
_stepCountAtLastMeter = this.StepCount;
|
||||
}
|
||||
|
||||
SetCenterOfMass();
|
||||
var xpos = _centerOfMass.x;
|
||||
var terminate = false;
|
||||
if (_terrainGenerator.IsPointOffEdge(BodyParts["pelvis"].transform.position)){
|
||||
terminate = true;
|
||||
AddReward(-1f);
|
||||
}
|
||||
if (this.StepCount-_stepCountAtLastMeter >= (200*5))
|
||||
terminate = true;
|
||||
else if (xpos < 4f && _pain > 1f)
|
||||
terminate = true;
|
||||
else if (xpos < 2f && _pain > 0f)
|
||||
terminate = true;
|
||||
|
||||
return terminate;
|
||||
}
|
||||
public override void OnTerrainCollision(GameObject other, GameObject terrain) {
|
||||
if (terrain.GetComponent<Terrain>() == null)
|
||||
return;
|
||||
|
||||
switch (other.name.ToLowerInvariant().Trim())
|
||||
{
|
||||
case "pelvis": // dm_hopper
|
||||
_pain += 5f;
|
||||
NonFootHitTerrain = true;
|
||||
break;
|
||||
case "left_ankle_geom": // oai_ant
|
||||
case "right_ankle_geom": // oai_ant
|
||||
case "third_ankle_geom": // oai_ant
|
||||
case "fourth_ankle_geom": // oai_ant
|
||||
FootHitTerrain = true;
|
||||
break;
|
||||
default:
|
||||
_pain += 5f;
|
||||
NonFootHitTerrain = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ObservationsDefault(VectorSensor sensor)
|
||||
{
|
||||
var pelvis = BodyParts["pelvis"];
|
||||
Vector3 normalizedVelocity = GetNormalizedVelocity(pelvis.velocity);
|
||||
sensor.AddObservation(normalizedVelocity);
|
||||
sensor.AddObservation(pelvis.transform.forward); // gyroscope
|
||||
sensor.AddObservation(pelvis.transform.up);
|
||||
|
||||
sensor.AddObservation(SensorIsInTouch);
|
||||
JointRotations.ForEach(x => sensor.AddObservation(x));
|
||||
sensor.AddObservation(JointVelocity);
|
||||
// Vector3 normalizedFootPosition = this.GetNormalizedPosition(pelvis.transform.position);
|
||||
// sensor.AddObservation(normalizedFootPosition.y);
|
||||
|
||||
(List<float> distances, float fraction) =
|
||||
_terrainGenerator.GetDistances2d(
|
||||
pelvis.transform.position, ShowMonitor);
|
||||
|
||||
sensor.AddObservation(distances);
|
||||
sensor.AddObservation(fraction);
|
||||
}
|
||||
|
||||
|
||||
void SetCenterOfMass()
|
||||
{
|
||||
_centerOfMass = Vector3.zero;
|
||||
float c = 0f;
|
||||
var bodyParts = this.gameObject.GetComponentsInChildren<Rigidbody>();
|
||||
|
||||
foreach (var part in bodyParts)
|
||||
{
|
||||
_centerOfMass += part.worldCenterOfMass * part.mass;
|
||||
c += part.mass;
|
||||
}
|
||||
_centerOfMass /= c;
|
||||
}
|
||||
|
||||
float StepRewardAnt101()
|
||||
{
|
||||
float velocity = Mathf.Clamp(GetNormalizedVelocity("pelvis").x, 0f, 1f);
|
||||
float effort = 1f - GetEffortNormalized();
|
||||
|
||||
// velocity *= 0.7f;
|
||||
// if (velocity >= .25f)
|
||||
// effort *= 0.25f;
|
||||
// else
|
||||
// effort *= velocity;
|
||||
|
||||
// var reward = velocity
|
||||
// + effort;
|
||||
// if (ShowMonitor)
|
||||
// {
|
||||
// var hist = new[] {reward, velocity, effort};
|
||||
// Monitor.Log("rewardHist", hist, displayType: Monitor.DisplayType.Independent);
|
||||
// }
|
||||
_pain = 0f;
|
||||
var reward = velocity;
|
||||
return reward;
|
||||
// return 0f;
|
||||
}
|
||||
}
|
||||
11
Assets/MarathonEnvs/Scripts/OriginalAgents/TerrainAntAgent.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/OriginalAgents/TerrainAntAgent.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 01dc2865764654ce99be0a7f7842997f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
229
Assets/MarathonEnvs/Scripts/OriginalAgents/TerrainGenerator.cs
Normal file
229
Assets/MarathonEnvs/Scripts/OriginalAgents/TerrainGenerator.cs
Normal file
@@ -0,0 +1,229 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using Unity.MLAgents;
|
||||
using System.Linq;
|
||||
using ManyWorlds;
|
||||
|
||||
public class TerrainGenerator : MonoBehaviour
|
||||
{
|
||||
|
||||
Terrain terrain;
|
||||
Agent _agent;
|
||||
DecisionRequester _decisionRequester;
|
||||
public int posXInTerrain;
|
||||
public int posYInTerrain;
|
||||
float[,] _heights;
|
||||
float[,] _rowHeight;
|
||||
|
||||
public int heightIndex;
|
||||
public float curHeight;
|
||||
public float actionReward;
|
||||
|
||||
internal const float _minHeight = 0f;
|
||||
internal const float _maxHeight = 10f;
|
||||
internal const float _minSpawnHeight = 0f;//2f;
|
||||
internal const float _maxSpawnHeight = 10f;//8f;
|
||||
const float _midHeight = 5f;
|
||||
float _mapScaleY;
|
||||
float[,] _heightMap;
|
||||
public List<float> debugLastHeights;
|
||||
public List<float> debugLastNormHeights;
|
||||
public float debugLastFraction;
|
||||
|
||||
PhysicsScene physicsScene;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
physicsScene = (GetComponentInParent<SpawnableEnv>().GetPhysicsScene());
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
{
|
||||
if (this.terrain == null)
|
||||
{
|
||||
var parent = gameObject.transform.parent;
|
||||
terrain = parent.GetComponentInChildren<Terrain>();
|
||||
var sharedTerrainData = terrain.terrainData;
|
||||
terrain.terrainData = new TerrainData();
|
||||
terrain.terrainData.heightmapResolution = sharedTerrainData.heightmapResolution;
|
||||
terrain.terrainData.baseMapResolution = sharedTerrainData.baseMapResolution;
|
||||
terrain.terrainData.SetDetailResolution(sharedTerrainData.detailResolution, sharedTerrainData.detailResolutionPerPatch);
|
||||
terrain.terrainData.size = sharedTerrainData.size;
|
||||
//terrain.terrainData.thickness = sharedTerrainData.thickness;
|
||||
// terrain.terrainData.splatPrototypes = sharedTerrainData.splatPrototypes;
|
||||
terrain.terrainData.terrainLayers = sharedTerrainData.terrainLayers;
|
||||
var collider = terrain.GetComponent<TerrainCollider>();
|
||||
collider.terrainData = terrain.terrainData;
|
||||
_rowHeight = new float[terrain.terrainData.heightmapResolution,1];
|
||||
}
|
||||
if (this._agent == null)
|
||||
{
|
||||
_agent = GetComponent<Agent>();
|
||||
_decisionRequester = GetComponent<DecisionRequester>();
|
||||
}
|
||||
//print($"HeightMap {this.terrain.terrainData.heightmapWidth}, {this.terrain.terrainData.heightmapHeight}.
|
||||
// Scale {this.terrain.terrainData.heightmapScale}. Resolution {this.terrain.terrainData.heightmapResolution}");
|
||||
_mapScaleY = this.terrain.terrainData.heightmapScale.y;
|
||||
// get the normalized position of this game object relative to the terrain
|
||||
Vector3 tempCoord = (transform.position - terrain.gameObject.transform.position);
|
||||
Vector3 coord;
|
||||
tempCoord.x = Mathf.Clamp(tempCoord.x,0f, terrain.terrainData.size.x-0.000001f);
|
||||
tempCoord.z = Mathf.Clamp(tempCoord.z,0f, terrain.terrainData.size.z-0.000001f);
|
||||
coord.x = (tempCoord.x-1) / terrain.terrainData.size.x;
|
||||
coord.y = tempCoord.y / terrain.terrainData.size.y;
|
||||
coord.z = tempCoord.z / terrain.terrainData.size.z;
|
||||
// get the position of the terrain heightmap where this game object is
|
||||
posXInTerrain = (int) (coord.x * terrain.terrainData.heightmapResolution);
|
||||
posYInTerrain = (int) (coord.z * terrain.terrainData.heightmapResolution);
|
||||
// we set an offset so that all the raising terrain is under this game object
|
||||
int offset = 0 / 2;
|
||||
// get the heights of the terrain under this game object
|
||||
_heights = terrain.terrainData.GetHeights(posXInTerrain-offset,posYInTerrain-offset, 100,1);
|
||||
curHeight = _midHeight;
|
||||
heightIndex = posXInTerrain;
|
||||
actionReward = 0f;
|
||||
|
||||
ResetHeights();
|
||||
}
|
||||
void ResetHeights()
|
||||
{
|
||||
if (_heightMap == null){
|
||||
_heightMap = new float [terrain.terrainData.heightmapResolution, terrain.terrainData.heightmapResolution];
|
||||
}
|
||||
heightIndex = 0;
|
||||
while(heightIndex <posXInTerrain)
|
||||
SetNextHeight(0);
|
||||
|
||||
SetNextHeight(0);
|
||||
SetNextHeight(0);
|
||||
SetNextHeight(0);
|
||||
SetNextHeight(0);
|
||||
SetNextHeight(0);
|
||||
SetNextHeight(0);
|
||||
while(heightIndex < terrain.terrainData.heightmapResolution)
|
||||
{
|
||||
int action = Random.Range(0,21);
|
||||
try
|
||||
{
|
||||
SetNextHeight(action);
|
||||
}
|
||||
catch (System.Exception)
|
||||
{
|
||||
SetNextHeight(action);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
this.terrain.terrainData.SetHeights(0, 0, _heightMap);
|
||||
|
||||
}
|
||||
void SetNextHeight(int action)
|
||||
{
|
||||
float actionSize = 0f;
|
||||
bool actionPos = (action-1) % 2 == 0;
|
||||
if (action != 0)
|
||||
{
|
||||
actionSize = ((float)((action+1)/2)) * 0.1f;
|
||||
curHeight += actionPos ? actionSize : -actionSize;
|
||||
if (curHeight < _minSpawnHeight) {
|
||||
curHeight = _minSpawnHeight;
|
||||
actionSize = 0;
|
||||
}
|
||||
if (curHeight > _maxSpawnHeight)
|
||||
{
|
||||
curHeight = _maxSpawnHeight;
|
||||
actionSize = 0;
|
||||
}
|
||||
}
|
||||
|
||||
float height = curHeight / _mapScaleY;
|
||||
// var unit = terrain.terrainData.heightmapWidth / (int)_mapScaleY;
|
||||
int unit = 1;
|
||||
int startH = heightIndex * unit;
|
||||
for (int h = startH; h < startH+unit; h++)
|
||||
{
|
||||
for (int w = 0; w < terrain.terrainData.heightmapResolution; w++){
|
||||
_heightMap[w,h] = height;
|
||||
}
|
||||
height += 1/300f/_mapScaleY;
|
||||
}
|
||||
heightIndex++;
|
||||
}
|
||||
|
||||
public List<float> GetDistances2d(IEnumerable<Vector3> points)
|
||||
{
|
||||
List<float> distances = points
|
||||
.Select(x=> GetDistance2d(x))
|
||||
.ToList();
|
||||
return distances;
|
||||
}
|
||||
float GetDistance2d(Vector3 point)
|
||||
{
|
||||
int layerMask = ~(1 << 14);
|
||||
RaycastHit hit;
|
||||
if (!physicsScene.Raycast(point, Vector3.down, out hit,_maxHeight,layerMask))
|
||||
return 1f;
|
||||
float distance = hit.distance;
|
||||
distance = Mathf.Clamp(distance, -1f, 1f);
|
||||
return distance;
|
||||
}
|
||||
|
||||
public bool IsPointOffEdge(Vector3 point)
|
||||
{
|
||||
Vector3 localPos = (point - terrain.gameObject.transform.position);
|
||||
bool isOffEdge = false;
|
||||
isOffEdge |= (localPos.z < 0f);
|
||||
isOffEdge |= (localPos.z >= terrain.terrainData.size.z);
|
||||
return isOffEdge;
|
||||
}
|
||||
|
||||
public (List<float>, float) GetDistances2d(Vector3 pos, bool showDebug)
|
||||
{
|
||||
int layerMask = ~(1 << 14);
|
||||
var xpos = pos.x;
|
||||
xpos -= 2f;
|
||||
float fraction = (xpos - (Mathf.Floor(xpos*5)/5)) * 5;
|
||||
float ypos = pos.y;
|
||||
List<Ray> rays = Enumerable.Range(0, 5*7).Select(x => new Ray(new Vector3(xpos+(x*.2f), TerrainGenerator._maxHeight, pos.z), Vector3.down)).ToList();
|
||||
RaycastHit hit;
|
||||
List<float> distances = rays.Select
|
||||
( ray=> {
|
||||
if (!physicsScene.Raycast(ray.origin, ray.direction, out hit,_maxHeight,layerMask))
|
||||
return _maxHeight;
|
||||
return ypos - (_maxHeight - hit.distance);
|
||||
}).ToList();
|
||||
if (Application.isEditor && showDebug)
|
||||
{
|
||||
var view = distances.Skip(10).Take(20).Select(x=>x).ToList();
|
||||
//Monitor.Log("distances", view.ToArray());
|
||||
var time = Time.deltaTime;
|
||||
if (_decisionRequester?.DecisionPeriod > 1)
|
||||
time *= _decisionRequester.DecisionPeriod;
|
||||
for (int i = 0; i < rays.Count; i++)
|
||||
{
|
||||
var distance = distances[i];
|
||||
var origin = new Vector3(rays[i].origin.x, ypos,0f);
|
||||
var direction = distance > 0 ? Vector3.down : Vector3.up;
|
||||
var color = distance > 0 ? Color.yellow : Color.red;
|
||||
Debug.DrawRay(origin, direction*Mathf.Abs(distance), color, time, false);
|
||||
}
|
||||
}
|
||||
List<float> normalizedDistances = distances
|
||||
.Select(x => Mathf.Clamp(x, -10f, 10f))
|
||||
.Select(x => x/10f)
|
||||
.ToList();
|
||||
;
|
||||
debugLastNormHeights = normalizedDistances;
|
||||
debugLastHeights = distances;
|
||||
debugLastFraction = fraction;
|
||||
|
||||
return (normalizedDistances, fraction);
|
||||
}
|
||||
}
|
||||
11
Assets/MarathonEnvs/Scripts/OriginalAgents/TerrainGenerator.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/OriginalAgents/TerrainGenerator.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4da94542694fa499d98d191423809c64
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
167
Assets/MarathonEnvs/Scripts/OriginalAgents/TerrainHopperAgent.cs
Normal file
167
Assets/MarathonEnvs/Scripts/OriginalAgents/TerrainHopperAgent.cs
Normal file
@@ -0,0 +1,167 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using Unity.MLAgents;
|
||||
using Unity.MLAgents.Actuators;
|
||||
using Unity.MLAgents.Sensors;
|
||||
|
||||
public class TerrainHopperAgent : MarathonAgent {
|
||||
|
||||
TerrainGenerator _terrainGenerator;
|
||||
int _lastXPosInMeters;
|
||||
int _stepCountAtLastMeter;
|
||||
float _pain;
|
||||
Vector3 _centerOfMass;
|
||||
|
||||
public override void OnEpisodeBegin()
|
||||
{
|
||||
base.OnEpisodeBegin();
|
||||
|
||||
BodyParts["pelvis"] = GetComponentsInChildren<Rigidbody>().FirstOrDefault(x=>x.name=="torso");
|
||||
BodyParts["foot"] = GetComponentsInChildren<Rigidbody>().FirstOrDefault(x=>x.name=="foot");
|
||||
|
||||
SetCenterOfMass();
|
||||
|
||||
if (_terrainGenerator == null)
|
||||
_terrainGenerator = GetComponent<TerrainGenerator>();
|
||||
_lastXPosInMeters = (int) BodyParts["foot"].transform.position.x;
|
||||
_terrainGenerator.Reset();
|
||||
_stepCountAtLastMeter = 0;
|
||||
|
||||
// set to true this to show monitor while training
|
||||
//Monitor.SetActive(true);
|
||||
|
||||
StepRewardFunction = StepRewardHopper101;
|
||||
TerminateFunction = LocalTerminate;
|
||||
ObservationsFunction = ObservationsDefault;
|
||||
OnTerminateRewardValue = 0f;
|
||||
_pain = 0f;
|
||||
|
||||
base.SetupBodyParts();
|
||||
SetCenterOfMass();
|
||||
}
|
||||
|
||||
bool LocalTerminate()
|
||||
{
|
||||
int newXPosInMeters = (int) BodyParts["foot"].transform.position.x;
|
||||
if (newXPosInMeters > _lastXPosInMeters) {
|
||||
_lastXPosInMeters = newXPosInMeters;
|
||||
_stepCountAtLastMeter = this.StepCount;
|
||||
}
|
||||
|
||||
SetCenterOfMass();
|
||||
var xpos = _centerOfMass.x;
|
||||
var terminate = false;
|
||||
if (this.StepCount-_stepCountAtLastMeter >= (100*5))
|
||||
terminate = true;
|
||||
else if (xpos < 2f && _pain > 0f)
|
||||
terminate = true;
|
||||
else if (_pain > 1f)
|
||||
terminate = true;
|
||||
|
||||
return terminate;
|
||||
}
|
||||
public override void OnTerrainCollision(GameObject other, GameObject terrain) {
|
||||
if (terrain.GetComponent<Terrain>() == null)
|
||||
return;
|
||||
|
||||
switch (other.name.ToLowerInvariant().Trim())
|
||||
{
|
||||
// case "torso": // dm_hopper
|
||||
// _pain += 5f;
|
||||
// NonFootHitTerrain = true;
|
||||
// break;
|
||||
case "foot": // dm_hopper
|
||||
case "calf": // dm_hopper
|
||||
FootHitTerrain = true;
|
||||
break;
|
||||
default:
|
||||
case "thigh": // dm_hopper
|
||||
case "pelvis": // dm_hopper
|
||||
case "torso": // dm_hopper
|
||||
_pain += .5f;
|
||||
NonFootHitTerrain = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ObservationsDefault(VectorSensor sensor)
|
||||
{
|
||||
// var pelvis = BodyParts["pelvis"];
|
||||
// sensor.AddObservation(pelvis.velocity);
|
||||
// sensor.AddObservation(pelvis.transform.forward); // gyroscope
|
||||
// sensor.AddObservation(pelvis.transform.up);
|
||||
|
||||
// sensor.AddObservation(SensorIsInTouch);
|
||||
// JointRotations.ForEach(x=>sensor.AddObservation(x));
|
||||
// sensor.AddObservation(JointVelocity);
|
||||
// var foot = BodyParts["foot"];
|
||||
// sensor.AddObservation(foot.transform.position.y);
|
||||
|
||||
var pelvis = BodyParts["pelvis"];
|
||||
Vector3 normalizedVelocity = this.GetNormalizedVelocity(pelvis.velocity);
|
||||
sensor.AddObservation(normalizedVelocity);
|
||||
sensor.AddObservation(pelvis.transform.forward); // gyroscope
|
||||
sensor.AddObservation(pelvis.transform.up);
|
||||
|
||||
sensor.AddObservation(SensorIsInTouch);
|
||||
JointRotations.ForEach(x => sensor.AddObservation(x));
|
||||
sensor.AddObservation(JointVelocity);
|
||||
var foot = BodyParts["foot"];
|
||||
Vector3 normalizedFootPosition = this.GetNormalizedPosition(foot.transform.position);
|
||||
sensor.AddObservation(normalizedFootPosition.y);
|
||||
|
||||
(List<float> distances, float fraction) =
|
||||
_terrainGenerator.GetDistances2d(
|
||||
pelvis.transform.position, ShowMonitor);
|
||||
|
||||
sensor.AddObservation(distances);
|
||||
sensor.AddObservation(fraction);
|
||||
}
|
||||
|
||||
|
||||
void SetCenterOfMass()
|
||||
{
|
||||
_centerOfMass = Vector3.zero;
|
||||
float c = 0f;
|
||||
var bodyParts = this.gameObject.GetComponentsInChildren<Rigidbody>();
|
||||
|
||||
foreach (var part in bodyParts)
|
||||
{
|
||||
_centerOfMass += part.worldCenterOfMass * part.mass;
|
||||
c += part.mass;
|
||||
}
|
||||
_centerOfMass /= c;
|
||||
}
|
||||
|
||||
float StepRewardHopper101()
|
||||
{
|
||||
float uprightBonus = GetDirectionBonus("pelvis", Vector3.forward, 1f);
|
||||
uprightBonus = Mathf.Clamp(uprightBonus, 0f, 1f);
|
||||
float velocity = Mathf.Clamp(GetNormalizedVelocity("pelvis").x, 0f, 1f);
|
||||
// float position = Mathf.Clamp(GetNormalizedPosition("pelvis").x, 0f, 1f);
|
||||
float effort = 1f - GetEffortNormalized();
|
||||
|
||||
// uprightBonus *= 0.05f;
|
||||
// velocity *= 0.7f;
|
||||
// if (velocity >= .25f)
|
||||
// effort *= 0.25f;
|
||||
// else
|
||||
// effort *= velocity;
|
||||
|
||||
// var reward = velocity
|
||||
// + uprightBonus
|
||||
// + effort;
|
||||
// if (ShowMonitor)
|
||||
// {
|
||||
// var hist = new[] {reward, velocity, uprightBonus, effort};
|
||||
// Monitor.Log("rewardHist", hist, displayType: Monitor.DisplayType.Independent);
|
||||
// }
|
||||
var reward = velocity;
|
||||
|
||||
_pain = 0f;
|
||||
return reward;
|
||||
}
|
||||
}
|
||||
11
Assets/MarathonEnvs/Scripts/OriginalAgents/TerrainHopperAgent.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/OriginalAgents/TerrainHopperAgent.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 152acbc2f18ab45f7a82449fec55784e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,183 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using Unity.MLAgents;
|
||||
using Unity.MLAgents.Actuators;
|
||||
using Unity.MLAgents.Sensors;
|
||||
using System.Linq;
|
||||
using static BodyHelper002;
|
||||
using ManyWorlds;
|
||||
|
||||
public class TerrainMarathonManAgent : Agent, IOnTerrainCollision
|
||||
{
|
||||
BodyManager002 _bodyManager;
|
||||
|
||||
TerrainGenerator _terrainGenerator;
|
||||
SpawnableEnv _spawnableEnv;
|
||||
int _stepCountAtLastMeter;
|
||||
public int lastXPosInMeters;
|
||||
public int maxXPosInMeters;
|
||||
float _pain;
|
||||
|
||||
List<float> distances;
|
||||
float fraction;
|
||||
bool _hasLazyInitialized;
|
||||
|
||||
override public void CollectObservations(VectorSensor sensor)
|
||||
{
|
||||
if (!_hasLazyInitialized)
|
||||
{
|
||||
OnEpisodeBegin();
|
||||
}
|
||||
|
||||
Vector3 normalizedVelocity = _bodyManager.GetNormalizedVelocity();
|
||||
var pelvis = _bodyManager.GetFirstBodyPart(BodyPartGroup.Hips);
|
||||
var shoulders = _bodyManager.GetFirstBodyPart(BodyPartGroup.Torso);
|
||||
|
||||
sensor.AddObservation(normalizedVelocity);
|
||||
sensor.AddObservation(pelvis.Rigidbody.transform.forward); // gyroscope
|
||||
sensor.AddObservation(pelvis.Rigidbody.transform.up);
|
||||
|
||||
sensor.AddObservation(shoulders.Rigidbody.transform.forward); // gyroscope
|
||||
sensor.AddObservation(shoulders.Rigidbody.transform.up);
|
||||
|
||||
sensor.AddObservation(_bodyManager.GetSensorIsInTouch());
|
||||
foreach (var bodyPart in _bodyManager.BodyParts)
|
||||
{
|
||||
bodyPart.UpdateObservations();
|
||||
sensor.AddObservation(bodyPart.ObsLocalPosition);
|
||||
sensor.AddObservation(bodyPart.ObsRotation);
|
||||
sensor.AddObservation(bodyPart.ObsRotationVelocity);
|
||||
sensor.AddObservation(bodyPart.ObsVelocity);
|
||||
}
|
||||
sensor.AddObservation(_bodyManager.GetSensorObservations());
|
||||
|
||||
(distances, fraction) =
|
||||
_terrainGenerator.GetDistances2d(
|
||||
pelvis.Rigidbody.transform.position, _bodyManager.ShowMonitor);
|
||||
|
||||
sensor.AddObservation(distances);
|
||||
sensor.AddObservation(fraction);
|
||||
// _bodyManager.OnCollectObservationsHandleDebug(GetInfo());
|
||||
}
|
||||
|
||||
public override void OnActionReceived(ActionBuffers actions)
|
||||
{
|
||||
float[] vectorAction = actions.ContinuousActions.Select(x=>x).ToArray();
|
||||
|
||||
if (!_hasLazyInitialized)
|
||||
{
|
||||
return;
|
||||
}
|
||||
// apply actions to body
|
||||
_bodyManager.OnAgentAction(vectorAction);
|
||||
|
||||
// manage reward
|
||||
float velocity = Mathf.Clamp(_bodyManager.GetNormalizedVelocity().x, 0f, 1f);
|
||||
var actionDifference = _bodyManager.GetActionDifference();
|
||||
var actionsAbsolute = vectorAction.Select(x=>Mathf.Abs(x)).ToList();
|
||||
var actionsAtLimit = actionsAbsolute.Select(x=> x>=1f ? 1f : 0f).ToList();
|
||||
float actionaAtLimitCount = actionsAtLimit.Sum();
|
||||
float notAtLimitBonus = 1f - (actionaAtLimitCount / (float) actionsAbsolute.Count);
|
||||
float reducedPowerBonus = 1f - actionsAbsolute.Average();
|
||||
|
||||
// velocity *= 0.85f;
|
||||
// reducedPowerBonus *=0f;
|
||||
// notAtLimitBonus *=.1f;
|
||||
// actionDifference *=.05f;
|
||||
// var reward = velocity
|
||||
// + notAtLimitBonus
|
||||
// + reducedPowerBonus
|
||||
// + actionDifference;
|
||||
var reward = velocity;
|
||||
AddReward(reward);
|
||||
_bodyManager.SetDebugFrameReward(reward);
|
||||
|
||||
var pelvis = _bodyManager.GetFirstBodyPart(BodyPartGroup.Hips);
|
||||
float xpos =
|
||||
_bodyManager.GetBodyParts(BodyPartGroup.Foot)
|
||||
.Average(x=>x.Transform.position.x);
|
||||
int newXPosInMeters = (int) xpos;
|
||||
if (newXPosInMeters > lastXPosInMeters) {
|
||||
lastXPosInMeters = newXPosInMeters;
|
||||
_stepCountAtLastMeter = this.StepCount;
|
||||
}
|
||||
if (newXPosInMeters > maxXPosInMeters)
|
||||
maxXPosInMeters = newXPosInMeters;
|
||||
var terminate = false;
|
||||
// bool isInBounds = _spawnableEnv.IsPointWithinBoundsInWorldSpace(pelvis.Transform.position);
|
||||
// if (!isInBounds)
|
||||
// if (pelvis.Rigidbody.transform.position.y < 0f)
|
||||
if (_terrainGenerator.IsPointOffEdge(pelvis.Transform.position)){
|
||||
terminate = true;
|
||||
AddReward(-1f);
|
||||
}
|
||||
if (this.StepCount-_stepCountAtLastMeter >= (200*5))
|
||||
terminate = true;
|
||||
else if (xpos < 4f && _pain > 1f)
|
||||
terminate = true;
|
||||
else if (xpos < 2f && _pain > 0f)
|
||||
terminate = true;
|
||||
else if (_pain > 2f)
|
||||
terminate = true;
|
||||
if (terminate){
|
||||
EndEpisode();
|
||||
}
|
||||
_pain = 0f;
|
||||
}
|
||||
|
||||
public override void OnEpisodeBegin()
|
||||
{
|
||||
if (!_hasLazyInitialized)
|
||||
{
|
||||
_bodyManager = GetComponent<BodyManager002>();
|
||||
_bodyManager.BodyConfig = MarathonManAgent.BodyConfig;
|
||||
_bodyManager.OnInitializeAgent();
|
||||
_hasLazyInitialized = true;
|
||||
}
|
||||
|
||||
if (_bodyManager == null)
|
||||
_bodyManager = GetComponent<BodyManager002>();
|
||||
_bodyManager.OnAgentReset();
|
||||
if (_terrainGenerator == null)
|
||||
_terrainGenerator = GetComponent<TerrainGenerator>();
|
||||
if (_spawnableEnv == null)
|
||||
_spawnableEnv = GetComponentInParent<SpawnableEnv>();
|
||||
_terrainGenerator.Reset();
|
||||
lastXPosInMeters = (int)
|
||||
_bodyManager.GetBodyParts(BodyPartGroup.Foot)
|
||||
.Average(x=>x.Transform.position.x);
|
||||
_pain = 0f;
|
||||
}
|
||||
public virtual void OnTerrainCollision(GameObject other, GameObject terrain)
|
||||
{
|
||||
// if (string.Compare(terrain.name, "Terrain", true) != 0)
|
||||
if (terrain.GetComponent<Terrain>() == null)
|
||||
return;
|
||||
// if (!_styleAnimator.AnimationStepsReady)
|
||||
// return;
|
||||
// HACK - for when agent has not been initialized
|
||||
if (_bodyManager == null)
|
||||
return;
|
||||
var bodyPart = _bodyManager.BodyParts.FirstOrDefault(x=>x.Transform.gameObject == other);
|
||||
if (bodyPart == null)
|
||||
return;
|
||||
switch (bodyPart.Group)
|
||||
{
|
||||
case BodyHelper002.BodyPartGroup.None:
|
||||
case BodyHelper002.BodyPartGroup.Foot:
|
||||
case BodyHelper002.BodyPartGroup.LegLower:
|
||||
break;
|
||||
case BodyHelper002.BodyPartGroup.LegUpper:
|
||||
case BodyHelper002.BodyPartGroup.Hand:
|
||||
case BodyHelper002.BodyPartGroup.ArmLower:
|
||||
case BodyHelper002.BodyPartGroup.ArmUpper:
|
||||
_pain += .1f;
|
||||
break;
|
||||
default:
|
||||
// AddReward(-100f);
|
||||
_pain += 5f;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/MarathonEnvs/Scripts/OriginalAgents/TerrainMarathonManAgent.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/OriginalAgents/TerrainMarathonManAgent.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cf9d05032146a423c9add69cc32051f0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
159
Assets/MarathonEnvs/Scripts/OriginalAgents/TerrainWalkerAgent.cs
Normal file
159
Assets/MarathonEnvs/Scripts/OriginalAgents/TerrainWalkerAgent.cs
Normal file
@@ -0,0 +1,159 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using Unity.MLAgents;
|
||||
using Unity.MLAgents.Actuators;
|
||||
using Unity.MLAgents.Sensors;
|
||||
|
||||
public class TerrainWalkerAgent : MarathonAgent {
|
||||
|
||||
TerrainGenerator _terrainGenerator;
|
||||
|
||||
int _lastXPosInMeters;
|
||||
int _stepCountAtLastMeter;
|
||||
float _pain;
|
||||
Vector3 _centerOfMass;
|
||||
|
||||
public override void OnEpisodeBegin()
|
||||
{
|
||||
base.OnEpisodeBegin();
|
||||
|
||||
BodyParts["pelvis"] = GetComponentsInChildren<Rigidbody>().FirstOrDefault(x => x.name == "torso");
|
||||
BodyParts["left_thigh"] = GetComponentsInChildren<Rigidbody>().FirstOrDefault(x => x.name == "left_thigh");
|
||||
BodyParts["right_thigh"] = GetComponentsInChildren<Rigidbody>().FirstOrDefault(x => x.name == "right_thigh");
|
||||
BodyParts["right_foot"] = GetComponentsInChildren<Rigidbody>().FirstOrDefault(x => x.name == "right_foot");
|
||||
BodyParts["left_foot"] = GetComponentsInChildren<Rigidbody>().FirstOrDefault(x => x.name == "left_foot");
|
||||
|
||||
SetCenterOfMass();
|
||||
|
||||
if (_terrainGenerator == null)
|
||||
_terrainGenerator = GetComponent<TerrainGenerator>();
|
||||
_lastXPosInMeters = (int) BodyParts["pelvis"].transform.position.x;
|
||||
_terrainGenerator.Reset();
|
||||
_stepCountAtLastMeter = 0;
|
||||
|
||||
// set to true this to show monitor while training
|
||||
//Monitor.SetActive(true);
|
||||
|
||||
StepRewardFunction = StepRewardWalker106;
|
||||
TerminateFunction = LocalTerminate;
|
||||
ObservationsFunction = ObservationsDefault;
|
||||
OnTerminateRewardValue = 0f;
|
||||
_pain = 0f;
|
||||
|
||||
base.SetupBodyParts();
|
||||
SetCenterOfMass();
|
||||
}
|
||||
|
||||
bool LocalTerminate()
|
||||
{
|
||||
int newXPosInMeters = (int) BodyParts["pelvis"].transform.position.x;
|
||||
if (newXPosInMeters > _lastXPosInMeters) {
|
||||
_lastXPosInMeters = newXPosInMeters;
|
||||
_stepCountAtLastMeter = this.StepCount;
|
||||
}
|
||||
|
||||
SetCenterOfMass();
|
||||
var xpos = _centerOfMass.x;
|
||||
var terminate = false;
|
||||
if (this.StepCount-_stepCountAtLastMeter >= (100*5))
|
||||
terminate = true;
|
||||
else if (xpos < 4f && _pain > 1f)
|
||||
terminate = true;
|
||||
else if (xpos < 2f && _pain > 0f)
|
||||
terminate = true;
|
||||
|
||||
return terminate;
|
||||
}
|
||||
public override void OnTerrainCollision(GameObject other, GameObject terrain) {
|
||||
if (terrain.GetComponent<Terrain>() == null)
|
||||
return;
|
||||
|
||||
switch (other.name.ToLowerInvariant().Trim())
|
||||
{
|
||||
case "pelvis": // dm_hopper
|
||||
_pain += 5f;
|
||||
NonFootHitTerrain = true;
|
||||
break;
|
||||
case "right_leg": // dm_walker
|
||||
case "left_leg": // dm_walker
|
||||
case "right_foot": // dm_walker
|
||||
case "left_foot": // dm_walker
|
||||
FootHitTerrain = true;
|
||||
break;
|
||||
default:
|
||||
_pain += 5f;
|
||||
NonFootHitTerrain = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ObservationsDefault(VectorSensor sensor)
|
||||
{
|
||||
var pelvis = BodyParts["pelvis"];
|
||||
Vector3 normalizedVelocity = this.GetNormalizedVelocity(pelvis.velocity);
|
||||
sensor.AddObservation(normalizedVelocity);
|
||||
sensor.AddObservation(pelvis.transform.forward); // gyroscope
|
||||
sensor.AddObservation(pelvis.transform.up);
|
||||
|
||||
sensor.AddObservation(SensorIsInTouch);
|
||||
JointRotations.ForEach(x => sensor.AddObservation(x));
|
||||
sensor.AddObservation(JointVelocity);
|
||||
// sensor.AddObservation(new []{
|
||||
// this.GetNormalizedPosition(BodyParts["left_foot"].transform.position).y,
|
||||
// this.GetNormalizedPosition(BodyParts["right_foot"].transform.position).y
|
||||
// });
|
||||
|
||||
(List<float> distances, float fraction) =
|
||||
_terrainGenerator.GetDistances2d(
|
||||
pelvis.transform.position, ShowMonitor);
|
||||
|
||||
sensor.AddObservation(distances);
|
||||
sensor.AddObservation(fraction);
|
||||
}
|
||||
|
||||
|
||||
void SetCenterOfMass()
|
||||
{
|
||||
_centerOfMass = Vector3.zero;
|
||||
float c = 0f;
|
||||
var bodyParts = this.gameObject.GetComponentsInChildren<Rigidbody>();
|
||||
|
||||
foreach (var part in bodyParts)
|
||||
{
|
||||
_centerOfMass += part.worldCenterOfMass * part.mass;
|
||||
c += part.mass;
|
||||
}
|
||||
_centerOfMass /= c;
|
||||
}
|
||||
|
||||
float StepRewardWalker106()
|
||||
{
|
||||
float uprightBonus = GetDirectionBonus("pelvis", Vector3.forward, 1f);
|
||||
uprightBonus = Mathf.Clamp(uprightBonus, 0f, 1f);
|
||||
float velocity = Mathf.Clamp(GetNormalizedVelocity("pelvis").x, 0f, 1f);
|
||||
float effort = 1f - GetEffortNormalized();
|
||||
|
||||
//if (ShowMonitor)
|
||||
//{
|
||||
// var hist = new[] {velocity, uprightBonus, effort}.ToList();
|
||||
// Monitor.Log("rewardHist", hist.ToArray(), displayType: Monitor.DisplayType.Independent);
|
||||
//}
|
||||
|
||||
// uprightBonus *= 0.1f;
|
||||
// velocity *= 0.45f;
|
||||
// if (velocity >= .45f)
|
||||
// effort *= 0.45f;
|
||||
// else
|
||||
// effort *= velocity;
|
||||
|
||||
// var reward = velocity
|
||||
// + uprightBonus
|
||||
// + effort;
|
||||
var reward = velocity;
|
||||
_pain = 0f;
|
||||
return reward;
|
||||
}
|
||||
}
|
||||
11
Assets/MarathonEnvs/Scripts/OriginalAgents/TerrainWalkerAgent.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/OriginalAgents/TerrainWalkerAgent.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8c5a501017f084d2682727a59b227fe8
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/MarathonEnvs/Scripts/Ragdoll002.meta
generated
Normal file
8
Assets/MarathonEnvs/Scripts/Ragdoll002.meta
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bdc7ea2698158f74b9e797210e567d04
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
11
Assets/MarathonEnvs/Scripts/Ragdoll002/BodyConfig.cs
Normal file
11
Assets/MarathonEnvs/Scripts/Ragdoll002/BodyConfig.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using System;
|
||||
using static BodyHelper002;
|
||||
|
||||
public class BodyConfig
|
||||
{
|
||||
public Func<string, BodyPartGroup> GetBodyPartGroup;
|
||||
public Func<string, MuscleGroup> GetMuscleGroup;
|
||||
public Func<BodyPartGroup> GetRootBodyPart;
|
||||
public Func<MuscleGroup> GetRootMuscle;
|
||||
|
||||
}
|
||||
11
Assets/MarathonEnvs/Scripts/Ragdoll002/BodyConfig.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/Ragdoll002/BodyConfig.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 03e1cab076cd94a488d1decc5d843de7
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
33
Assets/MarathonEnvs/Scripts/Ragdoll002/BodyHelper002.cs
Normal file
33
Assets/MarathonEnvs/Scripts/Ragdoll002/BodyHelper002.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
|
||||
public static class BodyHelper002
|
||||
{
|
||||
[System.Serializable]
|
||||
public enum BodyPartGroup {
|
||||
None,
|
||||
Hips,
|
||||
Torso,
|
||||
Spine,
|
||||
Head,
|
||||
ArmUpper,
|
||||
ArmLower,
|
||||
Hand,
|
||||
LegUpper,
|
||||
LegLower,
|
||||
Foot,
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public enum MuscleGroup {
|
||||
None,
|
||||
Hips,
|
||||
Torso,
|
||||
Spine,
|
||||
Head,
|
||||
ArmUpper,
|
||||
ArmLower,
|
||||
Hand,
|
||||
LegUpper,
|
||||
LegLower,
|
||||
Foot,
|
||||
}
|
||||
}
|
||||
11
Assets/MarathonEnvs/Scripts/Ragdoll002/BodyHelper002.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/Ragdoll002/BodyHelper002.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bf75e597c351b12498957c0ec1d646fd
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
594
Assets/MarathonEnvs/Scripts/Ragdoll002/BodyManager002.cs
Normal file
594
Assets/MarathonEnvs/Scripts/Ragdoll002/BodyManager002.cs
Normal file
@@ -0,0 +1,594 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using Unity.MLAgents;
|
||||
using Unity.MLAgents.Actuators;
|
||||
using Unity.MLAgents.Sensors;
|
||||
using System.Linq;
|
||||
using static BodyHelper002;
|
||||
using System;
|
||||
using ManyWorlds;
|
||||
|
||||
public class BodyManager002 : MonoBehaviour, IOnSensorCollision
|
||||
{
|
||||
// Options / Configurables global properties
|
||||
public Transform CameraTarget;
|
||||
public float FixedDeltaTime = 0.005f;
|
||||
public bool ShowMonitor = false;
|
||||
public bool DebugDisableMotor;
|
||||
public bool DebugShowWithOffset;
|
||||
|
||||
|
||||
// Observations / Read only global properties
|
||||
public List<Muscle002> Muscles;
|
||||
public List<BodyPart002> BodyParts;
|
||||
public List<float> SensorIsInTouch;
|
||||
public List<float> Observations;
|
||||
public int ObservationNormalizedErrors;
|
||||
public int MaxObservationNormalizedErrors;
|
||||
public List<GameObject> Sensors;
|
||||
public float FrameReward;
|
||||
public float AverageReward;
|
||||
|
||||
|
||||
// private properties
|
||||
Vector3 startPosition;
|
||||
|
||||
Dictionary<GameObject, Vector3> transformsPosition;
|
||||
Dictionary<GameObject, Quaternion> transformsRotation;
|
||||
|
||||
Agent _agent;
|
||||
SpawnableEnv _spawnableEnv;
|
||||
TerrainGenerator _terrainGenerator;
|
||||
DecisionRequester _decisionRequester;
|
||||
|
||||
static int _startCount;
|
||||
|
||||
float[] lastVectorAction;
|
||||
float[] vectorDifference;
|
||||
List <Vector3> mphBuffer;
|
||||
|
||||
[Tooltip("Max distance travelled across all episodes")]
|
||||
/**< \brief Max distance travelled across all episodes*/
|
||||
public float MaxDistanceTraveled;
|
||||
|
||||
[Tooltip("Distance travelled this episode")]
|
||||
/**< \brief Distance travelled this episode*/
|
||||
public float DistanceTraveled;
|
||||
|
||||
List<SphereCollider> sensorColliders;
|
||||
static int _spawnCount;
|
||||
|
||||
// static ScoreHistogramData _scoreHistogramData;
|
||||
|
||||
|
||||
// void FixedUpdate()
|
||||
// {
|
||||
// foreach (var muscle in Muscles)
|
||||
// {
|
||||
// // var i = Muscles.IndexOf(muscle);
|
||||
// // muscle.UpdateObservations();
|
||||
// // if (!DebugShowWithOffset && !DebugDisableMotor)
|
||||
// // muscle.UpdateMotor();
|
||||
// // if (!muscle.Rigidbody.useGravity)
|
||||
// // continue; // skip sub joints
|
||||
// // }
|
||||
// }
|
||||
|
||||
public BodyConfig BodyConfig;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
}
|
||||
|
||||
public void OnInitializeAgent()
|
||||
{
|
||||
_spawnableEnv = GetComponentInParent<SpawnableEnv>();
|
||||
_terrainGenerator = GetComponentInParent<TerrainGenerator>();
|
||||
SetupBody();
|
||||
DistanceTraveled = float.MinValue;
|
||||
}
|
||||
|
||||
public void OnAgentReset()
|
||||
{
|
||||
if (DistanceTraveled != float.MinValue)
|
||||
{
|
||||
var scorer = FindObjectOfType<Scorer>();
|
||||
scorer?.ReportScore(DistanceTraveled, "Distance Traveled");
|
||||
}
|
||||
HandleModelReset();
|
||||
Sensors = _agent.GetComponentsInChildren<SensorBehavior>()
|
||||
.Select(x=>x.gameObject)
|
||||
.ToList();
|
||||
sensorColliders = Sensors
|
||||
.Select(x=>x.GetComponent<SphereCollider>())
|
||||
.ToList();
|
||||
SensorIsInTouch = Enumerable.Range(0,Sensors.Count).Select(x=>0f).ToList();
|
||||
// HACK first spawned agent should grab the camera
|
||||
var smoothFollow = GameObject.FindObjectOfType<SmoothFollow>();
|
||||
if (smoothFollow != null && smoothFollow.target == null) {
|
||||
if (_spawnCount == 0) // HACK follow nth agent
|
||||
{
|
||||
smoothFollow.target = CameraTarget;
|
||||
ShowMonitor = true;
|
||||
}
|
||||
else
|
||||
_spawnCount++;
|
||||
}
|
||||
lastVectorAction = null;
|
||||
vectorDifference = null;
|
||||
mphBuffer = new List<Vector3>();
|
||||
}
|
||||
|
||||
public void OnAgentAction(float[] vectorAction)
|
||||
{
|
||||
if (lastVectorAction == null){
|
||||
lastVectorAction = vectorAction.Select(x=>0f).ToArray();
|
||||
vectorDifference = vectorAction.Select(x=>0f).ToArray();
|
||||
}
|
||||
int i = 0;
|
||||
foreach (var muscle in Muscles)
|
||||
{
|
||||
// if(muscle.Parent == null)
|
||||
// continue;
|
||||
if (muscle.ConfigurableJoint.angularXMotion != ConfigurableJointMotion.Locked){
|
||||
vectorDifference[i] = Mathf.Abs(vectorAction[i]-lastVectorAction[i]);
|
||||
muscle.TargetNormalizedRotationX = vectorAction[i++];
|
||||
}
|
||||
if (muscle.ConfigurableJoint.angularYMotion != ConfigurableJointMotion.Locked){
|
||||
vectorDifference[i] = Mathf.Abs(vectorAction[i]-lastVectorAction[i]);
|
||||
muscle.TargetNormalizedRotationY = vectorAction[i++];
|
||||
}
|
||||
if (muscle.ConfigurableJoint.angularZMotion != ConfigurableJointMotion.Locked){
|
||||
vectorDifference[i] = Mathf.Abs(vectorAction[i]-lastVectorAction[i]);
|
||||
muscle.TargetNormalizedRotationZ = vectorAction[i++];
|
||||
}
|
||||
if (!DebugDisableMotor)
|
||||
muscle.UpdateMotor();
|
||||
}
|
||||
|
||||
if (ShowMonitor)
|
||||
{
|
||||
// var hist = new[] {velocity, uprightBonus, heightPenality, effort}.ToList();
|
||||
// Monitor.Log("rewardHist", hist.ToArray(), displayType: Monitor.DisplayType.Independent);
|
||||
}
|
||||
}
|
||||
|
||||
public BodyPart002 GetFirstBodyPart(BodyPartGroup bodyPartGroup)
|
||||
{
|
||||
var bodyPart = BodyParts.FirstOrDefault(x=>x.Group == bodyPartGroup);
|
||||
return bodyPart;
|
||||
}
|
||||
public List<BodyPart002> GetBodyParts()
|
||||
{
|
||||
return BodyParts;
|
||||
}
|
||||
public List<BodyPart002> GetBodyParts(BodyPartGroup bodyPartGroup)
|
||||
{
|
||||
return BodyParts.Where(x=>x.Group == bodyPartGroup).ToList();
|
||||
}
|
||||
|
||||
public float GetActionDifference()
|
||||
{
|
||||
float actionDifference = 1f - vectorDifference.Average();
|
||||
actionDifference = Mathf.Clamp(actionDifference, 0, 1);
|
||||
actionDifference = Mathf.Pow(actionDifference,2);
|
||||
return actionDifference;
|
||||
}
|
||||
|
||||
void SetupBody()
|
||||
{
|
||||
_agent = GetComponent<Agent>();
|
||||
_decisionRequester = GetComponent<DecisionRequester>();
|
||||
Time.fixedDeltaTime = FixedDeltaTime;
|
||||
|
||||
BodyParts = new List<BodyPart002> ();
|
||||
BodyPart002 root = null;
|
||||
foreach (var t in GetComponentsInChildren<Transform>())
|
||||
{
|
||||
if (BodyConfig.GetBodyPartGroup(t.name) == BodyHelper002.BodyPartGroup.None)
|
||||
continue;
|
||||
|
||||
var bodyPart = new BodyPart002{
|
||||
Rigidbody = t.GetComponent<Rigidbody>(),
|
||||
Transform = t,
|
||||
Name = t.name,
|
||||
Group = BodyConfig.GetBodyPartGroup(t.name),
|
||||
};
|
||||
if (bodyPart.Group == BodyConfig.GetRootBodyPart())
|
||||
root = bodyPart;
|
||||
bodyPart.Root = root;
|
||||
bodyPart.Init();
|
||||
BodyParts.Add(bodyPart);
|
||||
}
|
||||
var partCount = BodyParts.Count;
|
||||
|
||||
Muscles = new List<Muscle002> ();
|
||||
var muscles = GetComponentsInChildren<ConfigurableJoint>();
|
||||
ConfigurableJoint rootConfigurableJoint = null;
|
||||
var ragDoll = GetComponent<RagDoll002>();
|
||||
foreach (var m in muscles)
|
||||
{
|
||||
var maximumForce = ragDoll.MusclePowers.First(x=>x.Muscle == m.name).PowerVector;
|
||||
maximumForce *= ragDoll.MotorScale;
|
||||
var muscle = new Muscle002{
|
||||
Rigidbody = m.GetComponent<Rigidbody>(),
|
||||
Transform = m.GetComponent<Transform>(),
|
||||
ConfigurableJoint = m,
|
||||
Name = m.name,
|
||||
Group = BodyConfig.GetMuscleGroup(m.name),
|
||||
MaximumForce = maximumForce
|
||||
};
|
||||
if (muscle.Group == BodyConfig.GetRootMuscle())
|
||||
rootConfigurableJoint = muscle.ConfigurableJoint;
|
||||
muscle.RootConfigurableJoint = rootConfigurableJoint;
|
||||
muscle.Init();
|
||||
|
||||
Muscles.Add(muscle);
|
||||
}
|
||||
_startCount++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void HandleModelReset()
|
||||
{
|
||||
Transform[] allChildren = _agent.GetComponentsInChildren<Transform>();
|
||||
if (transformsPosition != null)
|
||||
{
|
||||
foreach (var child in allChildren)
|
||||
{
|
||||
child.position = transformsPosition[child.gameObject];
|
||||
child.rotation = transformsRotation[child.gameObject];
|
||||
var childRb = child.GetComponent<Rigidbody>();
|
||||
if (childRb != null)
|
||||
{
|
||||
childRb.angularVelocity = Vector3.zero;
|
||||
childRb.velocity = Vector3.zero;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
startPosition = _agent.transform.position;
|
||||
transformsPosition = new Dictionary<GameObject, Vector3>();
|
||||
transformsRotation = new Dictionary<GameObject, Quaternion>();
|
||||
foreach (Transform child in allChildren)
|
||||
{
|
||||
transformsPosition[child.gameObject] = child.position;
|
||||
transformsRotation[child.gameObject] = child.rotation;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public float GetHeightNormalizedReward(float maxHeight)
|
||||
{
|
||||
var height = GetHeight();
|
||||
var heightPenality = maxHeight - height;
|
||||
heightPenality = Mathf.Clamp(heightPenality, 0f, maxHeight);
|
||||
var reward = 1f - heightPenality;
|
||||
reward = Mathf.Clamp(reward, 0f, 1f);
|
||||
return reward;
|
||||
}
|
||||
internal float GetHeight()
|
||||
{
|
||||
var feetYpos = BodyParts
|
||||
.Where(x => x.Group == BodyPartGroup.Foot)
|
||||
.Select(x => x.Transform.position.y)
|
||||
.OrderBy(x => x)
|
||||
.ToList();
|
||||
float lowestFoot = 0f;
|
||||
if (feetYpos != null && feetYpos.Count != 0)
|
||||
lowestFoot = feetYpos[0];
|
||||
var height = GetFirstBodyPart(BodyPartGroup.Head).Transform.position.y - lowestFoot;
|
||||
return height;
|
||||
}
|
||||
public float GetDirectionNormalizedReward(BodyPartGroup bodyPartGroup, Vector3 direction)
|
||||
{
|
||||
BodyPart002 bodyPart = GetFirstBodyPart(bodyPartGroup);
|
||||
float maxBonus = 1f;
|
||||
var toFocalAngle = bodyPart.ToFocalRoation * bodyPart.Transform.right;
|
||||
var angle = Vector3.Angle(toFocalAngle, direction);
|
||||
var qpos2 = (angle % 180) / 180;
|
||||
var bonus = maxBonus * (2 - (Mathf.Abs(qpos2) * 2) - 1);
|
||||
return bonus;
|
||||
}
|
||||
|
||||
public float GetUprightNormalizedReward(BodyPartGroup bodyPartGroup)
|
||||
{
|
||||
BodyPart002 bodyPart = GetFirstBodyPart(bodyPartGroup);
|
||||
float maxBonus = 1f;
|
||||
var toFocalAngle = bodyPart.ToFocalRoation * -bodyPart.Transform.forward;
|
||||
var angleFromUp = Vector3.Angle(toFocalAngle, Vector3.up);
|
||||
var qpos2 = (angleFromUp % 180) / 180;
|
||||
var uprightBonus = maxBonus * (2 - (Mathf.Abs(qpos2) * 2) - 1);
|
||||
return uprightBonus;
|
||||
}
|
||||
public float GetEffortNormalized(string[] ignorJoints = null)
|
||||
{
|
||||
double effort = 0;
|
||||
double jointEffort = 0;
|
||||
double joints = 0;
|
||||
foreach (var muscle in Muscles)
|
||||
{
|
||||
if(muscle.Parent == null)
|
||||
continue;
|
||||
var name = muscle.Name;
|
||||
if (ignorJoints != null && ignorJoints.Contains(name))
|
||||
continue;
|
||||
if (muscle.ConfigurableJoint.angularXMotion != ConfigurableJointMotion.Locked) {
|
||||
jointEffort = Mathf.Pow(Mathf.Abs(muscle.TargetNormalizedRotationX),2);
|
||||
effort += jointEffort;
|
||||
joints++;
|
||||
}
|
||||
if (muscle.ConfigurableJoint.angularYMotion != ConfigurableJointMotion.Locked) {
|
||||
jointEffort = Mathf.Pow(Mathf.Abs(muscle.TargetNormalizedRotationY),2);
|
||||
effort += jointEffort;
|
||||
joints++;
|
||||
}
|
||||
if (muscle.ConfigurableJoint.angularZMotion != ConfigurableJointMotion.Locked) {
|
||||
jointEffort = Mathf.Pow(Mathf.Abs(muscle.TargetNormalizedRotationZ),2);
|
||||
effort += jointEffort;
|
||||
joints++;
|
||||
}
|
||||
}
|
||||
|
||||
return (float) (effort / joints);
|
||||
}
|
||||
public void OnSensorCollisionEnter(Collider sensorCollider, GameObject other) {
|
||||
// if (string.Compare(other.name, "Terrain", true) !=0)
|
||||
if (other.GetComponent<Terrain>() == null)
|
||||
return;
|
||||
var sensor = Sensors
|
||||
.FirstOrDefault(x=>x == sensorCollider.gameObject);
|
||||
if (sensor != null) {
|
||||
var idx = Sensors.IndexOf(sensor);
|
||||
SensorIsInTouch[idx] = 1f;
|
||||
}
|
||||
}
|
||||
public void OnSensorCollisionExit(Collider sensorCollider, GameObject other)
|
||||
{
|
||||
// if (string.Compare(other.gameObject.name, "Terrain", true) !=0)
|
||||
if (other.GetComponent<Terrain>() == null)
|
||||
return;
|
||||
var sensor = Sensors
|
||||
.FirstOrDefault(x=>x == sensorCollider.gameObject);
|
||||
if (sensor != null) {
|
||||
var idx = Sensors.IndexOf(sensor);
|
||||
SensorIsInTouch[idx] = 0f;
|
||||
}
|
||||
}
|
||||
public Vector3 GetLocalCenterOfMass()
|
||||
{
|
||||
var centerOfMass = GetCenterOfMass();
|
||||
centerOfMass -= transform.position;
|
||||
return centerOfMass;
|
||||
}
|
||||
public Vector3 GetCenterOfMass()
|
||||
{
|
||||
var centerOfMass = Vector3.zero;
|
||||
float totalMass = 0f;
|
||||
var bodies = BodyParts
|
||||
.Select(x=>x.Rigidbody)
|
||||
.Where(x=>x!=null)
|
||||
.ToList();
|
||||
foreach (Rigidbody rb in bodies)
|
||||
{
|
||||
centerOfMass += rb.worldCenterOfMass * rb.mass;
|
||||
totalMass += rb.mass;
|
||||
}
|
||||
centerOfMass /= totalMass;
|
||||
return centerOfMass;
|
||||
}
|
||||
|
||||
public Vector3 GetNormalizedVelocity()
|
||||
{
|
||||
var pelvis = GetFirstBodyPart(BodyConfig.GetRootBodyPart());
|
||||
Vector3 metersPerSecond = pelvis.Rigidbody.velocity;
|
||||
var n = GetNormalizedVelocity(metersPerSecond);
|
||||
return n;
|
||||
}
|
||||
|
||||
public Vector3 GetNormalizedPosition()
|
||||
{
|
||||
// var position = GetCenterOfMass();
|
||||
var pelvis = GetFirstBodyPart(BodyConfig.GetRootBodyPart());
|
||||
var position = pelvis.Transform.position;
|
||||
var normalizedPosition = GetNormalizedPosition(position - startPosition);
|
||||
return normalizedPosition;
|
||||
}
|
||||
public void SetDebugFrameReward(float reward)
|
||||
{
|
||||
FrameReward = reward;
|
||||
var stepCount = _agent.StepCount > 0 ? _agent.StepCount : 1;
|
||||
if (_decisionRequester?.DecisionPeriod > 1)
|
||||
stepCount /= _decisionRequester.DecisionPeriod;
|
||||
AverageReward = _agent.GetCumulativeReward() / (float) stepCount;
|
||||
}
|
||||
|
||||
|
||||
public List<float> GetSensorIsInTouch()
|
||||
{
|
||||
return SensorIsInTouch;
|
||||
}
|
||||
// public List<float> GetBodyPartsObservations()
|
||||
// {
|
||||
// List<float> vectorObservation = new List<float>();
|
||||
// foreach (var bodyPart in BodyParts)
|
||||
// {
|
||||
// bodyPart.UpdateObservations();
|
||||
// // _agent.sensor.AddObservation(bodyPart.ObsRotation);
|
||||
// vectorObservation.Add(bodyPart.ObsRotation.x);
|
||||
// vectorObservation.Add(bodyPart.ObsRotation.y);
|
||||
// vectorObservation.Add(bodyPart.ObsRotation.z);
|
||||
// vectorObservation.Add(bodyPart.ObsRotation.w);
|
||||
|
||||
// // _agent.sensor.AddObservation(bodyPart.ObsRotationVelocity);
|
||||
// vectorObservation.Add(bodyPart.ObsRotationVelocity.x);
|
||||
// vectorObservation.Add(bodyPart.ObsRotationVelocity.y);
|
||||
// vectorObservation.Add(bodyPart.ObsRotationVelocity.z);
|
||||
|
||||
// // _agent.sensor.AddObservation(GetNormalizedVelocity(bodyPart.ObsVelocity));
|
||||
// var normalizedVelocity = GetNormalizedVelocity(bodyPart.ObsVelocity);
|
||||
// vectorObservation.Add(normalizedVelocity.x);
|
||||
// vectorObservation.Add(normalizedVelocity.y);
|
||||
// vectorObservation.Add(normalizedVelocity.z);
|
||||
// }
|
||||
// return vectorObservation;
|
||||
// }
|
||||
public List<float> GetMusclesObservations()
|
||||
{
|
||||
List<float> vectorObservation = new List<float>();
|
||||
foreach (var muscle in Muscles)
|
||||
{
|
||||
muscle.UpdateObservations();
|
||||
if (muscle.ConfigurableJoint.angularXMotion != ConfigurableJointMotion.Locked)
|
||||
vectorObservation.Add(muscle.TargetNormalizedRotationX);
|
||||
if (muscle.ConfigurableJoint.angularYMotion != ConfigurableJointMotion.Locked)
|
||||
vectorObservation.Add(muscle.TargetNormalizedRotationY);
|
||||
if (muscle.ConfigurableJoint.angularZMotion != ConfigurableJointMotion.Locked)
|
||||
vectorObservation.Add(muscle.TargetNormalizedRotationZ);
|
||||
}
|
||||
return vectorObservation;
|
||||
}
|
||||
[Obsolete("use GetSensorObservations()")]
|
||||
public List<float> GetSensorYPositions()
|
||||
{
|
||||
var sensorYpositions = Sensors
|
||||
.Select(x=> this.GetNormalizedPosition(x.transform.position - startPosition))
|
||||
.Select(x=>x.y)
|
||||
.ToList();
|
||||
return sensorYpositions;
|
||||
}
|
||||
[Obsolete("use GetSensorObservations()")]
|
||||
public List<float> GetSensorZPositions()
|
||||
{
|
||||
var sensorYpositions = Sensors
|
||||
.Select(x=> this.GetNormalizedPosition(x.transform.position - startPosition))
|
||||
.Select(x=>x.z)
|
||||
.ToList();
|
||||
return sensorYpositions;
|
||||
}
|
||||
|
||||
public List<float> GetSensorObservations()
|
||||
{
|
||||
var localSensorsPos = new Vector3[Sensors.Count];
|
||||
var globalSensorsPos = new Vector3[Sensors.Count];
|
||||
for (int i = 0; i < Sensors.Count; i++) {
|
||||
globalSensorsPos[i] = sensorColliders[i].transform.TransformPoint(sensorColliders[i].center);
|
||||
localSensorsPos[i] = globalSensorsPos[i] - startPosition;
|
||||
}
|
||||
|
||||
// get heights based on global senor position
|
||||
var sensorsPos = Sensors
|
||||
.Select(x=>x.transform.position).ToList();
|
||||
var senorHeights = _terrainGenerator != null
|
||||
? _terrainGenerator.GetDistances2d(globalSensorsPos)
|
||||
: Enumerable.Range(0, globalSensorsPos.Length).Select(x=>0f).ToList();
|
||||
for (int i = 0; i < Sensors.Count; i++) {
|
||||
senorHeights[i] -= sensorColliders[i].radius;
|
||||
if (senorHeights[i] >= 1f)
|
||||
senorHeights[i] = 1f;
|
||||
}
|
||||
|
||||
// get z positions based on local positions
|
||||
var bounds = _spawnableEnv.bounds;
|
||||
var normalizedZ = localSensorsPos
|
||||
.Select(x=>x.z / (bounds.extents.z))
|
||||
.ToList();
|
||||
var observations = senorHeights
|
||||
.Concat(normalizedZ)
|
||||
.ToList();
|
||||
return observations;
|
||||
}
|
||||
|
||||
// public void OnCollectObservationsHandleDebug(AgentInfo info)
|
||||
// {
|
||||
// if (Observations?.Count != info.vectorObservation.Count)
|
||||
// Observations = Enumerable.Range(0, info.vectorObservation.Count).Select(x => 0f).ToList();
|
||||
// ObservationNormalizedErrors = 0;
|
||||
// for (int i = 0; i < Observations.Count; i++)
|
||||
// {
|
||||
// Observations[i] = info.vectorObservation[i];
|
||||
// var x = Mathf.Abs(Observations[i]);
|
||||
// var e = Mathf.Epsilon;
|
||||
// bool is1 = Mathf.Approximately(x, 1f);
|
||||
// if ((x > 1f + e) && !is1)
|
||||
// ObservationNormalizedErrors++;
|
||||
// }
|
||||
// if (ObservationNormalizedErrors > MaxObservationNormalizedErrors)
|
||||
// MaxObservationNormalizedErrors = ObservationNormalizedErrors;
|
||||
|
||||
// var pelvis = GetFirstBodyPart(BodyPartGroup.Hips);
|
||||
// DistanceTraveled = pelvis.Transform.position.x;
|
||||
// MaxDistanceTraveled = Mathf.Max(MaxDistanceTraveled, DistanceTraveled);
|
||||
// Vector3 metersPerSecond = pelvis.Rigidbody.velocity;
|
||||
// Vector3 mph = metersPerSecond * 2.236936f;
|
||||
// mphBuffer.Add(mph);
|
||||
// if (mphBuffer.Count > 100)
|
||||
// mphBuffer.RemoveAt(0);
|
||||
// var aveMph = new Vector3(
|
||||
// mphBuffer.Select(x=>x.x).Average(),
|
||||
// mphBuffer.Select(x=>x.y).Average(),
|
||||
// mphBuffer.Select(x=>x.z).Average()
|
||||
// );
|
||||
// if (ShowMonitor)
|
||||
// {
|
||||
// Monitor.Log("MaxDistance", MaxDistanceTraveled.ToString());
|
||||
// Monitor.Log("NormalizedPos", GetNormalizedPosition().ToString());
|
||||
// Monitor.Log("MPH: ", (aveMph).ToString());
|
||||
// }
|
||||
// }
|
||||
|
||||
float NextGaussian(float mu = 0, float sigma = 1)
|
||||
{
|
||||
var u1 = UnityEngine.Random.value;
|
||||
var u2 = UnityEngine.Random.value;
|
||||
|
||||
var rand_std_normal = Mathf.Sqrt(-2.0f * Mathf.Log(u1)) *
|
||||
Mathf.Sin(2.0f * Mathf.PI * u2);
|
||||
|
||||
var rand_normal = mu + sigma * rand_std_normal;
|
||||
|
||||
return rand_normal;
|
||||
}
|
||||
public Vector3 GetNormalizedVelocity(Vector3 metersPerSecond)
|
||||
{
|
||||
var maxMetersPerSecond = _spawnableEnv.bounds.size
|
||||
/ _agent.MaxStep
|
||||
/ Time.fixedDeltaTime;
|
||||
var maxXZ = Mathf.Max(maxMetersPerSecond.x, maxMetersPerSecond.z);
|
||||
maxMetersPerSecond.x = maxXZ;
|
||||
maxMetersPerSecond.z = maxXZ;
|
||||
maxMetersPerSecond.y = 53; // override with
|
||||
float x = metersPerSecond.x / maxMetersPerSecond.x;
|
||||
float y = metersPerSecond.y / maxMetersPerSecond.y;
|
||||
float z = metersPerSecond.z / maxMetersPerSecond.z;
|
||||
// clamp result
|
||||
x = Mathf.Clamp(x, -1f, 1f);
|
||||
y = Mathf.Clamp(y, -1f, 1f);
|
||||
z = Mathf.Clamp(z, -1f, 1f);
|
||||
Vector3 normalizedVelocity = new Vector3(x,y,z);
|
||||
return normalizedVelocity;
|
||||
}
|
||||
public Vector3 GetNormalizedPosition(Vector3 pos)
|
||||
{
|
||||
var maxPos = _spawnableEnv.bounds.size;
|
||||
float x = pos.x / maxPos.x;
|
||||
float y = pos.y / maxPos.y;
|
||||
float z = pos.z / maxPos.z;
|
||||
// clamp result
|
||||
x = Mathf.Clamp(x, -1f, 1f);
|
||||
y = Mathf.Clamp(y, -1f, 1f);
|
||||
z = Mathf.Clamp(z, -1f, 1f);
|
||||
Vector3 normalizedPos = new Vector3(x,y,z);
|
||||
return normalizedPos;
|
||||
}
|
||||
}
|
||||
11
Assets/MarathonEnvs/Scripts/Ragdoll002/BodyManager002.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/Ragdoll002/BodyManager002.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 776799f55314f4500bc35f859c94e2fe
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
239
Assets/MarathonEnvs/Scripts/Ragdoll002/BodyPart002.cs
Normal file
239
Assets/MarathonEnvs/Scripts/Ragdoll002/BodyPart002.cs
Normal file
@@ -0,0 +1,239 @@
|
||||
// A class that describes a body part of an Agent or an Animator. The object
|
||||
// stores the rigid body associated with an Agent's body part. Along with some
|
||||
// important data like root bone, i. e. 'butt' for a marathonMan. Implments methods
|
||||
// to calculate distance to the characteristics of an animation being mimiced.
|
||||
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using Unity.MLAgents;
|
||||
|
||||
|
||||
[System.Serializable]
|
||||
public class BodyPart002
|
||||
{
|
||||
|
||||
public string Name;
|
||||
public BodyHelper002.BodyPartGroup Group;
|
||||
|
||||
public Vector3 ObsLocalPosition;
|
||||
public Quaternion ObsRotation;
|
||||
public Quaternion ObsRotationFromBase;
|
||||
public Vector3 ObsRotationVelocity;
|
||||
public Vector3 ObsVelocity;
|
||||
public float ObsAngleDeltaFromAnimationRotation;
|
||||
public Vector3 ObsDeltaFromAnimationPosition;
|
||||
|
||||
public Vector3 ObsDeltaFromAnimationVelocity;
|
||||
public Vector3 ObsDeltaFromAnimationAngularVelocity;
|
||||
public Vector3 ObsDeltaFromAnimationAngularVelocityWorld;
|
||||
public Vector3 DebugMaxRotationVelocity;
|
||||
public Vector3 DebugMaxVelocity;
|
||||
|
||||
public Quaternion DefaultLocalRotation;
|
||||
public Quaternion ToJointSpaceInverse;
|
||||
public Quaternion ToJointSpaceDefault;
|
||||
|
||||
public Rigidbody Rigidbody;
|
||||
public Transform Transform;
|
||||
public BodyPart002 Root;
|
||||
public Quaternion InitialRootRotation;
|
||||
public Vector3 InitialRootPosition;
|
||||
|
||||
// base = from where to measure rotation and position from
|
||||
public Quaternion BaseRotation;
|
||||
public Vector3 BasePosition;
|
||||
//
|
||||
public Quaternion ToFocalRoation;
|
||||
|
||||
|
||||
Quaternion _lastObsRotation;
|
||||
Quaternion _lastWorldRotation;
|
||||
Vector3 _lastLocalPosition;
|
||||
Vector3 _lastWorldPosition;
|
||||
Vector3 _animationAngularVelocity;
|
||||
Vector3 _animationAngularVelocityWorld;
|
||||
Vector3 _animationVelocityWorld;
|
||||
|
||||
DecisionRequester _decisionRequester;
|
||||
|
||||
float _lastUpdateObsTime;
|
||||
bool _firstRunComplete;
|
||||
bool _hasRanVeryFirstInit;
|
||||
private Vector3 _animationPositionWorld;
|
||||
private Quaternion _animationRotation;
|
||||
|
||||
static Vector3 Vector3Max (Vector3 a, Vector3 b)
|
||||
{
|
||||
var answer = new Vector3(
|
||||
Mathf.Max(Mathf.Abs(a.x), Mathf.Abs(b.x)),
|
||||
Mathf.Max(Mathf.Abs(a.y), Mathf.Abs(b.y)),
|
||||
Mathf.Max(Mathf.Abs(a.z), Mathf.Abs(b.z)));
|
||||
return answer;
|
||||
}
|
||||
|
||||
// Initialize
|
||||
public void Init()
|
||||
{
|
||||
_decisionRequester = GameObject.Find("MarathonMan").GetComponent<DecisionRequester>();
|
||||
|
||||
_firstRunComplete = false;
|
||||
if (Rigidbody != null){
|
||||
Rigidbody.angularVelocity = Vector3.zero;
|
||||
Rigidbody.velocity = Vector3.zero;
|
||||
}
|
||||
|
||||
if (!_hasRanVeryFirstInit) {
|
||||
|
||||
InitialRootRotation = Root.Transform.transform.rotation;
|
||||
InitialRootPosition = Root.Transform.transform.position;
|
||||
BaseRotation = Root.Transform.transform.rotation;
|
||||
BasePosition = Root.Transform.transform.position;
|
||||
|
||||
DefaultLocalRotation = LocalRotation;
|
||||
Vector3 forward = this.Transform.forward;
|
||||
Vector3 up = this.Transform.up;
|
||||
Quaternion toJointSpace = Quaternion.LookRotation(forward, up);
|
||||
|
||||
ToJointSpaceInverse = Quaternion.Inverse(toJointSpace);
|
||||
ToJointSpaceDefault = DefaultLocalRotation * toJointSpace;
|
||||
|
||||
// set body part direction
|
||||
Vector3 focalOffset = new Vector3(10,0,0);
|
||||
if (Rigidbody != null){
|
||||
var focalPoint = Rigidbody.position + focalOffset;
|
||||
ToFocalRoation = Rigidbody.rotation;
|
||||
ToFocalRoation.SetLookRotation(focalPoint - Rigidbody.position);
|
||||
}
|
||||
|
||||
_hasRanVeryFirstInit = true;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Update values like ObsLocalPosition, ObsRotation, ... that will be accessed
|
||||
// by the agent as observations for the neural network. Also calculates distances
|
||||
// to an animation being mimicked
|
||||
public void UpdateObservations()
|
||||
{
|
||||
Quaternion rotation;
|
||||
Vector3 position;
|
||||
if (this == Root) {
|
||||
rotation = Quaternion.Inverse(InitialRootRotation) * Transform.rotation;
|
||||
position = Transform.position - InitialRootPosition;
|
||||
}
|
||||
else {
|
||||
rotation = Quaternion.Inverse(Root.Transform.rotation) * Transform.rotation;
|
||||
position = Transform.position - Root.Transform.position;
|
||||
}
|
||||
|
||||
if (_firstRunComplete == false){
|
||||
_lastUpdateObsTime = Time.time;
|
||||
_lastLocalPosition = position;
|
||||
_lastWorldPosition = Transform.position;
|
||||
_lastObsRotation = rotation;
|
||||
_lastWorldRotation = Transform.rotation;
|
||||
}
|
||||
|
||||
var dt = Time.fixedDeltaTime * _decisionRequester.DecisionPeriod;
|
||||
|
||||
var velocity = (position - _lastLocalPosition)/dt;
|
||||
var velocityWorld = (Transform.position - _lastWorldPosition)/dt;
|
||||
var angularVelocity = JointHelper002.CalcDeltaRotationNormalizedEuler(_lastObsRotation, rotation)/dt;
|
||||
var angularVelocityWorld = JointHelper002.CalcDeltaRotationNormalizedEuler(_lastWorldRotation, Transform.rotation)/dt;
|
||||
|
||||
// old calulation for observation vector
|
||||
//angularVelocity = NormalizedEulerAngles(rotationVelocity.eulerAngles);
|
||||
//angularVelocity /= 128f;
|
||||
// old calculation end
|
||||
|
||||
_lastUpdateObsTime = Time.time;
|
||||
_lastLocalPosition = position;
|
||||
_lastWorldPosition = Transform.position;
|
||||
_lastObsRotation = rotation;
|
||||
_lastWorldRotation = Transform.rotation;
|
||||
|
||||
//if (Name == "right_right_foot") {
|
||||
// Debug.Log("^^^^^^^^^^^^");
|
||||
// Debug.Log("body part name: " + Name);
|
||||
// Debug.Log("animation angular velocity:" + _animationAngularVelocity);
|
||||
// Debug.Log("angular velocity:" + angularVelocity);
|
||||
// Debug.Log("animation angular velocity world:" + _animationAngularVelocityWorld);
|
||||
// Debug.Log("angular velocity world:" + angularVelocityWorld);
|
||||
// Debug.Log("rotation local:" + rotation.eulerAngles);
|
||||
// Debug.Log("animation rotation local: " + _animationRotation.eulerAngles);
|
||||
// Debug.Log("velocity world: " + velocityWorld);
|
||||
// Debug.Log("animation velocity world:" + _animationVelocityWorld);
|
||||
// Debug.Log("transform position:" + Transform.position);
|
||||
// Debug.Log("animation position world: " + _animationPositionWorld);
|
||||
// Debug.Log("dt:" + dt);
|
||||
//}
|
||||
|
||||
ObsLocalPosition = position;
|
||||
ObsRotation = rotation;
|
||||
ObsRotationVelocity = angularVelocity;
|
||||
ObsVelocity = velocity;
|
||||
|
||||
ObsDeltaFromAnimationPosition = _animationPositionWorld - Transform.position;
|
||||
|
||||
ObsAngleDeltaFromAnimationRotation = Quaternion.Angle(_animationRotation, rotation);
|
||||
ObsAngleDeltaFromAnimationRotation = JointHelper002.NormalizedAngle(ObsAngleDeltaFromAnimationRotation);
|
||||
|
||||
ObsDeltaFromAnimationVelocity = _animationVelocityWorld - velocityWorld;
|
||||
ObsDeltaFromAnimationAngularVelocity = (_animationAngularVelocity - angularVelocity);
|
||||
ObsDeltaFromAnimationAngularVelocityWorld = (_animationAngularVelocityWorld - angularVelocityWorld);
|
||||
|
||||
DebugMaxRotationVelocity = Vector3Max(DebugMaxRotationVelocity, angularVelocity);
|
||||
DebugMaxVelocity = Vector3Max(DebugMaxVelocity, velocity);
|
||||
|
||||
_firstRunComplete = true;
|
||||
}
|
||||
|
||||
// returns local rotation
|
||||
public Quaternion LocalRotation {
|
||||
get {
|
||||
return Quaternion.Inverse(RootRotation) * Transform.rotation;
|
||||
}
|
||||
}
|
||||
|
||||
// retuns root rotation
|
||||
public Quaternion RootRotation{
|
||||
get {
|
||||
return InitialRootRotation;
|
||||
}
|
||||
}
|
||||
|
||||
// Set the position, rotation of a body part to match animation's position and
|
||||
// rotation. Also sets the rigid body's position and velocity, which is used
|
||||
// in angular momentum calculation
|
||||
public void MoveToAnim(Vector3 animPosition, Quaternion animRotation, Vector3 angularVelocity, Vector3 velocity)
|
||||
{
|
||||
Transform.position = animPosition;
|
||||
Transform.rotation = animRotation;
|
||||
if (Rigidbody != null){
|
||||
foreach (var childRb in Rigidbody.GetComponentsInChildren<Rigidbody>())
|
||||
{
|
||||
if (childRb == Rigidbody)
|
||||
continue;
|
||||
childRb.transform.localPosition = Vector3.zero;
|
||||
childRb.transform.localEulerAngles = Vector3.zero;
|
||||
childRb.angularVelocity = Vector3.zero;
|
||||
childRb.velocity = Vector3.zero;
|
||||
}
|
||||
Rigidbody.angularVelocity = angularVelocity;
|
||||
Rigidbody.velocity = velocity;
|
||||
}
|
||||
}
|
||||
|
||||
// Set the position of the animation being mimicked
|
||||
public void SetAnimationPosition(Vector3 animPositionWorld, Quaternion animRotationLocal, Vector3 animVelocityWorld, Vector3 animAngularVelocityLocal, Vector3 animAngularVelocityWorld)
|
||||
{
|
||||
_animationPositionWorld = animPositionWorld;
|
||||
_animationRotation = animRotationLocal;
|
||||
|
||||
_animationVelocityWorld = animVelocityWorld;
|
||||
_animationAngularVelocity = animAngularVelocityLocal;
|
||||
_animationAngularVelocityWorld = animAngularVelocityWorld;
|
||||
}
|
||||
}
|
||||
11
Assets/MarathonEnvs/Scripts/Ragdoll002/BodyPart002.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/Ragdoll002/BodyPart002.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d6e9d3ad85936e6459222f0017b88b80
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,18 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Unity.MLAgents;
|
||||
using UnityEngine;
|
||||
|
||||
public class DomainRandomization : MonoBehaviour
|
||||
{
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
11
Assets/MarathonEnvs/Scripts/Ragdoll002/DomainRandomization.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/Ragdoll002/DomainRandomization.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e04e2081c5c5647a9993dcdc05765cd0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
107
Assets/MarathonEnvs/Scripts/Ragdoll002/JointHelper002.cs
Normal file
107
Assets/MarathonEnvs/Scripts/Ragdoll002/JointHelper002.cs
Normal file
@@ -0,0 +1,107 @@
|
||||
// Helper Utilities to work with agent's rigid bodies charateristics. Allows to
|
||||
// calculate Angles between rotations in radians, find center of mass of an agent,
|
||||
// and find Angular Momentum of an agent.
|
||||
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System;
|
||||
|
||||
public static class JointHelper002 {
|
||||
|
||||
// Return rotation from one rotation to another
|
||||
public static Quaternion FromToRotation(Quaternion from, Quaternion to) {
|
||||
if (to == from) return Quaternion.identity;
|
||||
|
||||
return to * Quaternion.Inverse(from);
|
||||
}
|
||||
|
||||
// Calculate rotation between two rotations in radians. Adjusts the value to lie within [-pi, +pi].
|
||||
public static Vector3 NormalizedEulerAngles(Vector3 eulerAngles) {
|
||||
var x = eulerAngles.x < 180f ?
|
||||
eulerAngles.x :
|
||||
-360 + eulerAngles.x;
|
||||
var y = eulerAngles.y < 180f ?
|
||||
eulerAngles.y :
|
||||
-360 + eulerAngles.y;
|
||||
var z = eulerAngles.z < 180f ?
|
||||
eulerAngles.z :
|
||||
-360 + eulerAngles.z;
|
||||
x = x * Mathf.Deg2Rad;
|
||||
y = y * Mathf.Deg2Rad;
|
||||
z = z * Mathf.Deg2Rad;
|
||||
return new Vector3(x, y, z);
|
||||
}
|
||||
|
||||
// Adjust the value of an angle to lie within [-pi, +pi].
|
||||
public static float NormalizedAngle(float angle) {
|
||||
if (angle < 180) {
|
||||
return angle * Mathf.Deg2Rad;
|
||||
}
|
||||
return (angle - 360) * Mathf.Deg2Rad;
|
||||
}
|
||||
|
||||
// Find rotation and convert to radians within [-pi, +pi].
|
||||
public static Vector3 CalcDeltaRotationNormalizedEuler(Quaternion from, Quaternion to) {
|
||||
var rotationVelocity = FromToRotation(from, to);
|
||||
var angularVelocity = NormalizedEulerAngles(rotationVelocity.eulerAngles);
|
||||
return angularVelocity;
|
||||
}
|
||||
|
||||
// Find the center of mass of a list of Body Parts beloning to an agent. Relative to the root bone, i. e. "butt" for humanoid.
|
||||
public static Vector3 GetCenterOfMassRelativeToRoot(List<BodyPart002> BodyParts) {
|
||||
var centerOfMass = Vector3.zero;
|
||||
float totalMass = 0f;
|
||||
var bodies = BodyParts
|
||||
.Select(x => x.Rigidbody)
|
||||
.Where(x => x != null)
|
||||
.ToList();
|
||||
var rootBone = BodyParts[0];
|
||||
foreach (Rigidbody rb in bodies) {
|
||||
centerOfMass += rb.worldCenterOfMass * rb.mass;
|
||||
totalMass += rb.mass;
|
||||
}
|
||||
centerOfMass /= totalMass;
|
||||
centerOfMass -= rootBone.InitialRootPosition;
|
||||
return centerOfMass;
|
||||
}
|
||||
|
||||
// Find the center of mass of a List of Body Parts relative to the world coordinate system.
|
||||
public static Vector3 GetCenterOfMassWorld(List<BodyPart002> BodyParts) {
|
||||
var centerOfMass = GetCenterOfMassRelativeToRoot(BodyParts) + BodyParts[0].InitialRootPosition;
|
||||
return centerOfMass;
|
||||
}
|
||||
|
||||
// Calculate Angular Momentum of a List of Body Parts. In the world coordinate system about the center
|
||||
// of mass of the Body Parts. Formulas at https://ocw.mit.edu/courses/aeronautics-and-astronautics/16-07-dynamics-fall-2009/lecture-notes/MIT16_07F09_Lec11.pdf
|
||||
public static Vector3 GetAngularMoment(List<BodyPart002> BodyParts) {
|
||||
var centerOfMass = GetCenterOfMassWorld(BodyParts);
|
||||
var bodies = BodyParts
|
||||
.Select(x => x.Rigidbody)
|
||||
.Where(x => x != null)
|
||||
.ToList();
|
||||
Vector3 totalAngularMoment = Vector3.zero;
|
||||
foreach (Rigidbody rb in bodies) {
|
||||
|
||||
var w_local = rb.transform.rotation * rb.angularVelocity;
|
||||
var w_inertiaFrame = rb.inertiaTensorRotation * w_local;
|
||||
|
||||
Vector3 L_inertiaFrame = Vector3.zero;
|
||||
L_inertiaFrame[0] = w_inertiaFrame[0] * rb.inertiaTensor[0];
|
||||
L_inertiaFrame[1] = w_inertiaFrame[1] * rb.inertiaTensor[1];
|
||||
L_inertiaFrame[2] = w_inertiaFrame[2] * rb.inertiaTensor[2];
|
||||
|
||||
Vector3 L_world = Quaternion.Inverse(rb.transform.rotation) * Quaternion.Inverse(rb.inertiaTensorRotation) * L_inertiaFrame;
|
||||
|
||||
Vector3 bodyPartCenterOfMassRelativeTobodyPartsCenterOfMass = rb.worldCenterOfMass - centerOfMass;
|
||||
Vector3 LofBodyPartCenterOfMass = rb.mass * Vector3.Cross(bodyPartCenterOfMassRelativeTobodyPartsCenterOfMass, rb.velocity);
|
||||
|
||||
totalAngularMoment += L_world + LofBodyPartCenterOfMass;
|
||||
|
||||
}
|
||||
return totalAngularMoment;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
11
Assets/MarathonEnvs/Scripts/Ragdoll002/JointHelper002.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/Ragdoll002/JointHelper002.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 168784be71eb147fd92601f19593c1b3
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
195
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonHelper.cs
Normal file
195
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonHelper.cs
Normal file
@@ -0,0 +1,195 @@
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Unity.MLAgents
|
||||
{
|
||||
public static class MarathonHelper
|
||||
{
|
||||
static readonly bool FlipMarathonX = false;
|
||||
|
||||
public static Vector3 RightToLeft(Vector3 rightHanded, bool hackFlipZ = false)
|
||||
{
|
||||
if (FlipMarathonX)
|
||||
return new Vector3(rightHanded.x, rightHanded.z,
|
||||
rightHanded.y); // use if fliping marathon's X direction
|
||||
return new Vector3(-rightHanded.x, rightHanded.z, -rightHanded.y); // use to maintain marathon's X direction
|
||||
}
|
||||
|
||||
static char[] _delimiterChars = {' ', ',', ':', '\t'};
|
||||
|
||||
static string RemoveDuplicateWhitespace(string input)
|
||||
{
|
||||
while (input.Contains(" "))
|
||||
input = input.Replace(" ", " ");
|
||||
while (input.Contains("\t\t"))
|
||||
input = input.Replace("\t\t", "\t");
|
||||
return input;
|
||||
}
|
||||
|
||||
static float Evaluate(string expression)
|
||||
{
|
||||
var doc = new System.Xml.XPath.XPathDocument(new System.IO.StringReader("<r/>"));
|
||||
var nav = doc.CreateNavigator();
|
||||
var newString = expression;
|
||||
newString = (new System.Text.RegularExpressions.Regex(@"([\+\-\*])")).Replace(newString, " ${1} ");
|
||||
newString = newString.Replace("/", " div ").Replace("%", " mod ");
|
||||
var res = nav.Evaluate("number(" + newString + ")");
|
||||
double d = (double) res;
|
||||
return (float) d;
|
||||
}
|
||||
|
||||
|
||||
static public Vector3 ParseVector3NoFlipYZ(string str)
|
||||
{
|
||||
str = RemoveDuplicateWhitespace(str);
|
||||
string[] words = str.Split(_delimiterChars);
|
||||
float x = Evaluate(words[0]);
|
||||
float y = Evaluate(words[1]);
|
||||
float z = Evaluate(words[2]);
|
||||
var vec3 = new Vector3(x, y, z);
|
||||
return vec3;
|
||||
}
|
||||
|
||||
static public Quaternion ParseQuaternion(string str)
|
||||
{
|
||||
str = RemoveDuplicateWhitespace(str);
|
||||
string[] words = str.Split(_delimiterChars);
|
||||
float w = Evaluate(words[0]);
|
||||
float x = Evaluate(words[1]);
|
||||
float y = Evaluate(words[2]);
|
||||
float z = Evaluate(words[3]);
|
||||
var q = new Quaternion(x, y, z, w);
|
||||
return q;
|
||||
}
|
||||
|
||||
static public Vector3 ParseAxis(string str)
|
||||
{
|
||||
var axis = MarathonHelper.ParseVector3NoFlipYZ(str);
|
||||
if (FlipMarathonX)
|
||||
axis = new Vector3(-axis.x, -axis.z, -axis.y); // use if fliping marathon's X direction
|
||||
else
|
||||
axis = new Vector3(axis.x, -axis.z, axis.y); // use to maintain marathon's X direction
|
||||
return axis;
|
||||
}
|
||||
|
||||
static public Vector3 JointParsePosition(string str, bool hackFlipZ)
|
||||
{
|
||||
str = RemoveDuplicateWhitespace(str);
|
||||
string[] words = str.Split(_delimiterChars);
|
||||
float x = Evaluate(words[0]);
|
||||
float y = Evaluate(words[1]);
|
||||
float z = Evaluate(words[2]);
|
||||
Vector3 vec3 = new Vector3(x, y, z);
|
||||
return RightToLeft(vec3, hackFlipZ);
|
||||
}
|
||||
|
||||
public static Vector3 ParsePosition(string str)
|
||||
{
|
||||
str = RemoveDuplicateWhitespace(str);
|
||||
string[] words = str.Split(_delimiterChars);
|
||||
float x = Evaluate(words[0]);
|
||||
float y = Evaluate(words[1]);
|
||||
float z = Evaluate(words[2]);
|
||||
Vector3 vec3 = new Vector3(x, y, z);
|
||||
return RightToLeft(vec3);
|
||||
}
|
||||
|
||||
public static Vector3 ParseFrom(string fromTo)
|
||||
{
|
||||
return ParseVector3NoFlipYZ(fromTo);
|
||||
}
|
||||
|
||||
public static Vector3 ParseTo(string fromTo)
|
||||
{
|
||||
fromTo = RemoveDuplicateWhitespace(fromTo);
|
||||
string[] words = fromTo.Split(_delimiterChars);
|
||||
float x = Evaluate(words[3]);
|
||||
float y = Evaluate(words[4]);
|
||||
float z = Evaluate(words[5]);
|
||||
Vector3 vec3 = new Vector3(x, y, z);
|
||||
return vec3;
|
||||
}
|
||||
|
||||
public static Vector2 ParseVector2(string str)
|
||||
{
|
||||
str = RemoveDuplicateWhitespace(str);
|
||||
string[] words = str.Split(_delimiterChars);
|
||||
float x = Evaluate(words[0]);
|
||||
float y = Evaluate(words[1]);
|
||||
var vec2 = new Vector2(x, y);
|
||||
return vec2;
|
||||
}
|
||||
|
||||
public static float ParseGetMin(string rangeAsText)
|
||||
{
|
||||
rangeAsText = RemoveDuplicateWhitespace(rangeAsText);
|
||||
string[] words = rangeAsText.Split(_delimiterChars);
|
||||
var range = words.Select(x => Evaluate(x));
|
||||
return range.Min();
|
||||
}
|
||||
|
||||
public static float ParseGetMax(string rangeAsText)
|
||||
{
|
||||
rangeAsText = RemoveDuplicateWhitespace(rangeAsText);
|
||||
string[] words = rangeAsText.Split(_delimiterChars);
|
||||
var range = words.Select(x => Evaluate(x));
|
||||
return range.Max();
|
||||
}
|
||||
|
||||
|
||||
public static GameObject CreateBetweenPoints(this GameObject parent, Vector3 start, Vector3 end, float width,
|
||||
bool useWorldSpace, GameObject root)
|
||||
{
|
||||
start = RightToLeft(start);
|
||||
end = RightToLeft(end);
|
||||
var instance = new GameObject();
|
||||
var procCap = instance.AddComponent<ProceduralCapsule>();
|
||||
var handleOverlap = instance.AddComponent<HandleOverlap>();
|
||||
handleOverlap.Parent = root;
|
||||
var collider = instance.AddComponent<CapsuleCollider>();
|
||||
var offset = start - end;
|
||||
var position = start - (offset / 2.0f);
|
||||
var height = offset.magnitude;
|
||||
collider.height = height + (width * 2) * .90f;
|
||||
collider.radius = width * .90f;
|
||||
procCap.height = height + (width);
|
||||
procCap.radius = width;
|
||||
procCap.CreateMesh();
|
||||
|
||||
instance.transform.parent = root.transform;
|
||||
instance.transform.up = offset;
|
||||
if (useWorldSpace)
|
||||
{
|
||||
instance.transform.position = position;
|
||||
}
|
||||
else
|
||||
{
|
||||
instance.transform.position = position + parent.transform.position;
|
||||
instance.transform.rotation = instance.transform.rotation * parent.transform.rotation;
|
||||
}
|
||||
|
||||
// UnityEngine.GameObject.Destroy(handleOverlap);
|
||||
return instance;
|
||||
}
|
||||
|
||||
public static GameObject CreateAtPoint(this GameObject parent, Vector3 position, float width,
|
||||
bool useWorldSpace, GameObject root)
|
||||
{
|
||||
var scale = new Vector3(width, width, width);
|
||||
var instance = GameObject.CreatePrimitive(PrimitiveType.Sphere);
|
||||
instance.transform.parent = root.transform;
|
||||
instance.transform.localScale = scale * 2;
|
||||
if (useWorldSpace)
|
||||
{
|
||||
instance.transform.position = position;
|
||||
}
|
||||
else
|
||||
{
|
||||
instance.transform.position = position + parent.transform.position;
|
||||
instance.transform.rotation = instance.transform.rotation * parent.transform.rotation;
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
13
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonHelper.cs.meta
generated
Normal file
13
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonHelper.cs.meta
generated
Normal file
@@ -0,0 +1,13 @@
|
||||
fileFormatVersion: 2
|
||||
guid: badf427d082e546a0b2b91e0b251f39d
|
||||
timeCreated: 1515352351
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
18
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonJoint.cs
Normal file
18
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonJoint.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Unity.MLAgents
|
||||
{
|
||||
[System.Serializable]
|
||||
public class MarathonJoint
|
||||
{
|
||||
public Joint Joint;
|
||||
public string Name;
|
||||
public string JointName;
|
||||
public Vector2 CtrlRange;
|
||||
public bool? CtrlLimited;
|
||||
public float? Gear;
|
||||
public ConfigurableJoint TrueBase;
|
||||
public Transform TrueTarget;
|
||||
public float MaximumForce;
|
||||
}
|
||||
}
|
||||
13
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonJoint.cs.meta
generated
Normal file
13
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonJoint.cs.meta
generated
Normal file
@@ -0,0 +1,13 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7e8c7f9aa73bc4a34bb844acd8d4dc68
|
||||
timeCreated: 1515741765
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
12
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonSensor.cs
Normal file
12
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonSensor.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Unity.MLAgents
|
||||
{
|
||||
[System.Serializable]
|
||||
public class MarathonSensor
|
||||
{
|
||||
public Collider SiteObject;
|
||||
public string Name;
|
||||
public string SiteName;
|
||||
}
|
||||
}
|
||||
13
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonSensor.cs.meta
generated
Normal file
13
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonSensor.cs.meta
generated
Normal file
@@ -0,0 +1,13 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c363fa98af67a4ed8b4ce15b4baefc8d
|
||||
timeCreated: 1520405313
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
1270
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonSpawner.cs
Normal file
1270
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonSpawner.cs
Normal file
File diff suppressed because it is too large
Load Diff
13
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonSpawner.cs.meta
generated
Normal file
13
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonSpawner.cs.meta
generated
Normal file
@@ -0,0 +1,13 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a532e373957504411bd01901bf361ad3
|
||||
timeCreated: 1515299486
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
18
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonSupport.cs
Normal file
18
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonSupport.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class MarathonSupport : MonoBehaviour
|
||||
{
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
11
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonSupport.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/Ragdoll002/MarathonSupport.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c3232628ca9c44e83973a20a6814ed33
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
206
Assets/MarathonEnvs/Scripts/Ragdoll002/Muscle002.cs
Normal file
206
Assets/MarathonEnvs/Scripts/Ragdoll002/Muscle002.cs
Normal file
@@ -0,0 +1,206 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
[System.Serializable]
|
||||
public class Muscle002
|
||||
{
|
||||
public string Name;
|
||||
public BodyHelper002.MuscleGroup Group;
|
||||
|
||||
[Range(-1,1)]
|
||||
public float TargetNormalizedRotationX;
|
||||
[Range(-1,1)]
|
||||
public float TargetNormalizedRotationY;
|
||||
[Range(-1,1)]
|
||||
public float TargetNormalizedRotationZ;
|
||||
public Vector3 MaximumForce;
|
||||
|
||||
public Vector3 ObsLocalPosition;
|
||||
public Quaternion ObsRotation;
|
||||
public Vector3 ObsNormalizedRotation;
|
||||
public Vector3 ObsNormalizedDeltaFromTargetRotation;
|
||||
public Vector3 ObsRotationVelocity;
|
||||
public Vector3 ObsVelocity;
|
||||
|
||||
public Vector3 DebugMaxRotationVelocity;
|
||||
public Vector3 DebugMaxVelocity;
|
||||
|
||||
|
||||
public Quaternion DefaultLocalRotation;
|
||||
public Quaternion ToJointSpaceInverse;
|
||||
public Quaternion ToJointSpaceDefault;
|
||||
|
||||
public Rigidbody Rigidbody;
|
||||
public Transform Transform;
|
||||
public ConfigurableJoint ConfigurableJoint;
|
||||
public Rigidbody Parent;
|
||||
public ConfigurableJoint RootConfigurableJoint;
|
||||
public Quaternion InitialRootRotation;
|
||||
public Vector3 InitialRootPosition;
|
||||
|
||||
Quaternion _lastObsRotation;
|
||||
Vector3 _lastLocalPosition;
|
||||
float _lastUpdateObsTime;
|
||||
bool _firstRunComplete;
|
||||
bool _hasRanVeryFirstInit;
|
||||
|
||||
|
||||
public void UpdateMotor()
|
||||
{
|
||||
float powerMultiplier = 2.5f;
|
||||
var t = ConfigurableJoint.targetAngularVelocity;
|
||||
t.x = TargetNormalizedRotationX * MaximumForce.x;
|
||||
t.y = TargetNormalizedRotationY * MaximumForce.y;
|
||||
t.z = TargetNormalizedRotationZ * MaximumForce.z;
|
||||
ConfigurableJoint.targetAngularVelocity = t;
|
||||
|
||||
var angX = ConfigurableJoint.angularXDrive;
|
||||
angX.positionSpring = 1f;
|
||||
var scale = MaximumForce.x * Mathf.Pow(Mathf.Abs(TargetNormalizedRotationX), 3);
|
||||
angX.positionDamper = Mathf.Max(1f, scale);
|
||||
angX.maximumForce = Mathf.Max(1f, MaximumForce.x * powerMultiplier);
|
||||
ConfigurableJoint.angularXDrive = angX;
|
||||
|
||||
var maxForce = Mathf.Max(MaximumForce.y, MaximumForce.z);
|
||||
var angYZ = ConfigurableJoint.angularYZDrive;
|
||||
angYZ.positionSpring = 1f;
|
||||
var maxAbsRotXY = Mathf.Max(Mathf.Abs(TargetNormalizedRotationY) + Mathf.Abs(TargetNormalizedRotationZ));
|
||||
scale = maxForce * Mathf.Pow(maxAbsRotXY, 3);
|
||||
angYZ.positionDamper = Mathf.Max(1f, scale);
|
||||
angYZ.maximumForce = Mathf.Max(1f, maxForce * powerMultiplier);
|
||||
ConfigurableJoint.angularYZDrive = angYZ;
|
||||
}
|
||||
|
||||
static Vector3 NormalizedEulerAngles(Vector3 eulerAngles)
|
||||
{
|
||||
var x = eulerAngles.x < 180f ?
|
||||
eulerAngles.x :
|
||||
- 360 + eulerAngles.x;
|
||||
var y = eulerAngles.y < 180f ?
|
||||
eulerAngles.y :
|
||||
- 360 + eulerAngles.y;
|
||||
var z = eulerAngles.z < 180f ?
|
||||
eulerAngles.z :
|
||||
- 360 + eulerAngles.z;
|
||||
x = x / 180f;
|
||||
y = y / 180f;
|
||||
z = z / 180f;
|
||||
return new Vector3(x,y,z);
|
||||
}
|
||||
static Vector3 ScaleNormalizedByJoint(Vector3 normalizedRotation, ConfigurableJoint configurableJoint)
|
||||
{
|
||||
var x = normalizedRotation.x > 0f ?
|
||||
(normalizedRotation.x * 180f) / configurableJoint.highAngularXLimit.limit :
|
||||
(-normalizedRotation.x * 180f) / configurableJoint.lowAngularXLimit.limit;
|
||||
var y = (normalizedRotation.y * 180f) / configurableJoint.angularYLimit.limit;
|
||||
var z = (normalizedRotation.z * 180f) / configurableJoint.angularZLimit.limit;
|
||||
var scaledNormalizedRotation = new Vector3(x,y,z);
|
||||
return scaledNormalizedRotation;
|
||||
}
|
||||
|
||||
static Vector3 Vector3Max (Vector3 a, Vector3 b)
|
||||
{
|
||||
var answer = new Vector3(
|
||||
Mathf.Max(Mathf.Abs(a.x), Mathf.Abs(b.x)),
|
||||
Mathf.Max(Mathf.Abs(a.y), Mathf.Abs(b.y)),
|
||||
Mathf.Max(Mathf.Abs(a.z), Mathf.Abs(b.z)));
|
||||
return answer;
|
||||
}
|
||||
|
||||
public void Init()
|
||||
{
|
||||
_firstRunComplete = false;
|
||||
Rigidbody.angularVelocity = Vector3.zero;
|
||||
Rigidbody.velocity = Vector3.zero;
|
||||
|
||||
|
||||
if (!_hasRanVeryFirstInit) {
|
||||
Parent = ConfigurableJoint.connectedBody;
|
||||
|
||||
InitialRootRotation = RootConfigurableJoint.transform.rotation;
|
||||
InitialRootPosition = RootConfigurableJoint.transform.position;
|
||||
|
||||
DefaultLocalRotation = LocalRotation;
|
||||
// Vector3 forward = Vector3.Cross (ConfigurableJoint.axis, ConfigurableJoint.secondaryAxis).normalized;
|
||||
//Vector3 up = Vector3.Cross (forward, ConfigurableJoint.axis).normalized;
|
||||
Vector3 forward = this.Transform.forward;
|
||||
Vector3 up = this.Transform.forward;
|
||||
Quaternion toJointSpace = Quaternion.LookRotation(forward, up);
|
||||
|
||||
ToJointSpaceInverse = Quaternion.Inverse(toJointSpace);
|
||||
ToJointSpaceDefault = DefaultLocalRotation * toJointSpace;
|
||||
_hasRanVeryFirstInit = true;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateObservations()
|
||||
{
|
||||
ObsRotation = this.LocalRotation;
|
||||
ObsRotation = (ToJointSpaceInverse * UnityEngine.Quaternion.Inverse(this.LocalRotation) * this.ToJointSpaceDefault);
|
||||
var r2 = (ToJointSpaceInverse * UnityEngine.Quaternion.Inverse(this.Transform.rotation) * this.ToJointSpaceDefault);
|
||||
var s1 = ScaleNormalizedByJoint(NormalizedEulerAngles((this.LocalRotation * ToJointSpaceDefault).eulerAngles), ConfigurableJoint);
|
||||
var s2 = ScaleNormalizedByJoint(NormalizedEulerAngles((Transform.localRotation * ToJointSpaceDefault).eulerAngles), ConfigurableJoint);
|
||||
var s3 = ScaleNormalizedByJoint(NormalizedEulerAngles((this.LocalRotation * ToJointSpaceInverse).eulerAngles), ConfigurableJoint);
|
||||
var s4 = ScaleNormalizedByJoint(NormalizedEulerAngles((Transform.localRotation * ToJointSpaceInverse).eulerAngles), ConfigurableJoint);
|
||||
var s5 = ScaleNormalizedByJoint(NormalizedEulerAngles((UnityEngine.Quaternion.Inverse(this.LocalRotation) * ToJointSpaceDefault).eulerAngles), ConfigurableJoint);
|
||||
|
||||
var normalizedRotation = NormalizedEulerAngles(ObsRotation.eulerAngles);
|
||||
// var normalizedRotation = NormalizedEulerAngles(this.LocalRotation.eulerAngles);
|
||||
ObsNormalizedRotation = ScaleNormalizedByJoint(normalizedRotation, ConfigurableJoint);
|
||||
ObsNormalizedDeltaFromTargetRotation =
|
||||
new Vector3(TargetNormalizedRotationX, TargetNormalizedRotationY, TargetNormalizedRotationZ) - ObsNormalizedRotation;
|
||||
|
||||
// Debug code
|
||||
// if (Group == BodyHelper002.MuscleGroup.Head){
|
||||
// var debug = 1;
|
||||
// }
|
||||
|
||||
if (_firstRunComplete == false){
|
||||
_lastUpdateObsTime = Time.time;
|
||||
_lastObsRotation = ObsRotation;
|
||||
_lastLocalPosition = Transform.localPosition;
|
||||
}
|
||||
var dt = Time.time - _lastUpdateObsTime;
|
||||
_lastUpdateObsTime = Time.time;
|
||||
var rotationVelocity = ObsRotation.eulerAngles - _lastObsRotation.eulerAngles;
|
||||
rotationVelocity = NormalizedEulerAngles(rotationVelocity);
|
||||
rotationVelocity /= 128f;
|
||||
if (dt > 0f)
|
||||
rotationVelocity /= dt;
|
||||
ObsRotationVelocity = rotationVelocity;
|
||||
_lastObsRotation = ObsRotation;
|
||||
var rootBone = RootConfigurableJoint.transform;
|
||||
var toRootSpace = Quaternion.Inverse(RootConfigurableJoint.transform.rotation) * rootBone.rotation;
|
||||
Quaternion rootRotation = Quaternion.Inverse(rootBone.rotation * toRootSpace) * Transform.rotation;
|
||||
ObsLocalPosition = Transform.position - RootConfigurableJoint.transform.position;
|
||||
var velocity = ObsLocalPosition - _lastLocalPosition;
|
||||
ObsVelocity = velocity;
|
||||
if (dt > 0f)
|
||||
velocity /= dt;
|
||||
_lastLocalPosition = ObsLocalPosition;
|
||||
|
||||
DebugMaxRotationVelocity = Vector3Max(DebugMaxRotationVelocity, rotationVelocity);
|
||||
DebugMaxVelocity = Vector3Max(DebugMaxVelocity, velocity);
|
||||
|
||||
_firstRunComplete = true;
|
||||
}
|
||||
public Quaternion LocalRotation {
|
||||
get {
|
||||
// around root Rotation
|
||||
return Quaternion.Inverse(RootRotation) * Transform.rotation;
|
||||
|
||||
// around parent space
|
||||
// return Quaternion.Inverse(ParentRotation) * transform.rotation;
|
||||
}
|
||||
}
|
||||
|
||||
public Quaternion RootRotation {
|
||||
get {
|
||||
return InitialRootRotation;
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/MarathonEnvs/Scripts/Ragdoll002/Muscle002.cs.meta
generated
Normal file
11
Assets/MarathonEnvs/Scripts/Ragdoll002/Muscle002.cs.meta
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c1a3e067c0e5a43b79cb9649ee706f12
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
158
Assets/MarathonEnvs/Scripts/Ragdoll002/ProceduralCapsule.cs
Normal file
158
Assets/MarathonEnvs/Scripts/Ragdoll002/ProceduralCapsule.cs
Normal file
@@ -0,0 +1,158 @@
|
||||
//------------------------------//
|
||||
// ProceduralCapsule.cs //
|
||||
// Written by Jay Kay //
|
||||
// 2016/05/27 //
|
||||
//------------------------------//
|
||||
|
||||
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
|
||||
|
||||
[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]
|
||||
public class ProceduralCapsule : MonoBehaviour
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
[ContextMenu("Generate Procedural Capsule")]
|
||||
public void GenerateProceduralCapsule()
|
||||
{
|
||||
// GenerateMesh();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
public float height = 2f;
|
||||
public float radius = 0.5f;
|
||||
|
||||
public int segments = 24;
|
||||
|
||||
|
||||
// void GenerateMesh()
|
||||
void Start()
|
||||
{
|
||||
}
|
||||
|
||||
public void CreateMesh()
|
||||
{
|
||||
// make segments an even number
|
||||
if (segments % 2 != 0)
|
||||
segments++;
|
||||
|
||||
// extra vertex on the seam
|
||||
int points = segments + 1;
|
||||
|
||||
// calculate points around a circle
|
||||
float[] pX = new float[points];
|
||||
float[] pZ = new float[points];
|
||||
float[] pY = new float[points];
|
||||
float[] pR = new float[points];
|
||||
|
||||
float calcH = 0f;
|
||||
float calcV = 0f;
|
||||
|
||||
for (int i = 0; i < points; i++)
|
||||
{
|
||||
pX[i] = Mathf.Sin(calcH * Mathf.Deg2Rad);
|
||||
pZ[i] = Mathf.Cos(calcH * Mathf.Deg2Rad);
|
||||
pY[i] = Mathf.Cos(calcV * Mathf.Deg2Rad);
|
||||
pR[i] = Mathf.Sin(calcV * Mathf.Deg2Rad);
|
||||
|
||||
calcH += 360f / (float) segments;
|
||||
calcV += 180f / (float) segments;
|
||||
}
|
||||
|
||||
|
||||
// - Vertices and UVs -
|
||||
|
||||
Vector3[] vertices = new Vector3[points * (points + 1)];
|
||||
Vector2[] uvs = new Vector2[vertices.Length];
|
||||
int ind = 0;
|
||||
|
||||
// Y-offset is half the height minus the diameter
|
||||
// float yOff = ( height - ( radius * 2f ) ) * 0.5f;
|
||||
float yOff = (height - (radius)) * 0.5f;
|
||||
if (yOff < 0)
|
||||
yOff = 0;
|
||||
|
||||
// uv calculations
|
||||
float stepX = 1f / ((float) (points - 1));
|
||||
float uvX, uvY;
|
||||
|
||||
// Top Hemisphere
|
||||
int top = Mathf.CeilToInt((float) points * 0.5f);
|
||||
|
||||
for (int y = 0; y < top; y++)
|
||||
{
|
||||
for (int x = 0; x < points; x++)
|
||||
{
|
||||
vertices[ind] = new Vector3(pX[x] * pR[y], pY[y], pZ[x] * pR[y]) * radius;
|
||||
vertices[ind].y = yOff + vertices[ind].y;
|
||||
|
||||
uvX = 1f - (stepX * (float) x);
|
||||
uvY = (vertices[ind].y + (height * 0.5f)) / height;
|
||||
uvs[ind] = new Vector2(uvX, uvY);
|
||||
|
||||
ind++;
|
||||
}
|
||||
}
|
||||
|
||||
// Bottom Hemisphere
|
||||
int btm = Mathf.FloorToInt((float) points * 0.5f);
|
||||
|
||||
for (int y = btm; y < points; y++)
|
||||
{
|
||||
for (int x = 0; x < points; x++)
|
||||
{
|
||||
vertices[ind] = new Vector3(pX[x] * pR[y], pY[y], pZ[x] * pR[y]) * radius;
|
||||
vertices[ind].y = -yOff + vertices[ind].y;
|
||||
|
||||
uvX = 1f - (stepX * (float) x);
|
||||
uvY = (vertices[ind].y + (height * 0.5f)) / height;
|
||||
uvs[ind] = new Vector2(uvX, uvY);
|
||||
|
||||
ind++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// - Triangles -
|
||||
|
||||
int[] triangles = new int[(segments * (segments + 1) * 2 * 3)];
|
||||
|
||||
for (int y = 0, t = 0; y < segments + 1; y++)
|
||||
{
|
||||
for (int x = 0; x < segments; x++, t += 6)
|
||||
{
|
||||
triangles[t + 0] = ((y + 0) * (segments + 1)) + x + 0;
|
||||
triangles[t + 1] = ((y + 1) * (segments + 1)) + x + 0;
|
||||
triangles[t + 2] = ((y + 1) * (segments + 1)) + x + 1;
|
||||
|
||||
triangles[t + 3] = ((y + 0) * (segments + 1)) + x + 1;
|
||||
triangles[t + 4] = ((y + 0) * (segments + 1)) + x + 0;
|
||||
triangles[t + 5] = ((y + 1) * (segments + 1)) + x + 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// - Assign Mesh -
|
||||
|
||||
MeshFilter mf = gameObject.GetComponent<MeshFilter>();
|
||||
Mesh mesh = mf.sharedMesh;
|
||||
if (!mesh)
|
||||
{
|
||||
mesh = new Mesh();
|
||||
mf.sharedMesh = mesh;
|
||||
}
|
||||
|
||||
mesh.Clear();
|
||||
|
||||
mesh.name = "ProceduralCapsule";
|
||||
|
||||
mesh.vertices = vertices;
|
||||
mesh.uv = uvs;
|
||||
mesh.triangles = triangles;
|
||||
|
||||
mesh.RecalculateBounds();
|
||||
mesh.RecalculateNormals();
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user