diff --git a/Assets/FittsLawVR.meta b/Assets/FittsLawVR.meta
new file mode 100644
index 0000000..fd5e179
--- /dev/null
+++ b/Assets/FittsLawVR.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 62d3a01001b36e5458fdd69d42454965
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/FittsLawVR/Prefabs.meta b/Assets/FittsLawVR/Prefabs.meta
new file mode 100644
index 0000000..cecd55c
--- /dev/null
+++ b/Assets/FittsLawVR/Prefabs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5d31c8fb2741a8b4bb15554eee798a44
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/FittsLawVR/Prefabs/Oculus.prefab b/Assets/FittsLawVR/Prefabs/Oculus.prefab
new file mode 100644
index 0000000..5288052
--- /dev/null
+++ b/Assets/FittsLawVR/Prefabs/Oculus.prefab
@@ -0,0 +1,3283 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 1183045170563806}
+ m_IsPrefabAsset: 1
+--- !u!1 &1008010802821890
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4178561024636574}
+ - component: {fileID: 137612276124298222}
+ m_Layer: 0
+ m_Name: lctrl:o_button_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1029393255810302
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4139459556117688}
+ - component: {fileID: 114001859480273076}
+ - component: {fileID: 114463545341352292}
+ - component: {fileID: 114840397608499616}
+ m_Layer: 0
+ m_Name: OVRCameraRig
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1031802246653814
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4062604697072744}
+ - component: {fileID: 137805404417022070}
+ m_Layer: 0
+ m_Name: lctrl:ring_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1042878997297914
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4491574881290202}
+ - component: {fileID: 114962958340395502}
+ m_Layer: 0
+ m_Name: RTouch
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1045658553142772
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4111184685383556}
+ - component: {fileID: 137148132631994804}
+ m_Layer: 0
+ m_Name: rctrl:main_trigger_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1053801355523812
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4465248853309910}
+ - component: {fileID: 20274601183661862}
+ m_Layer: 0
+ m_Name: RightEyeAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1061161000150842
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4034613778799152}
+ - component: {fileID: 137180000663918186}
+ m_Layer: 0
+ m_Name: rctrl:o_button_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1078465785723288
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4444380538584808}
+ m_Layer: 0
+ m_Name: rctrl:b_hold
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1082399576097744
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4133093452106756}
+ m_Layer: 0
+ m_Name: lctrl:b_hold
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1131268841222728
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4127641868092796}
+ m_Layer: 0
+ m_Name: TrackingSpace
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1141293064429872
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4716441106909838}
+ - component: {fileID: 137613867366649898}
+ m_Layer: 0
+ m_Name: lctrl:o_button_decal_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1183045170563806
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4410846568587808}
+ m_Layer: 0
+ m_Name: Oculus
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1189129104510430
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4107914804363626}
+ - component: {fileID: 137204444273523720}
+ m_Layer: 0
+ m_Name: lctrl:surface_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1207312671622230
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4455092461885150}
+ m_Layer: 0
+ m_Name: rctrl:geometry_null
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1230995782317284
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4364185373208546}
+ - component: {fileID: 137468296976460544}
+ m_Layer: 0
+ m_Name: rctrl:a_button_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1231531406751686
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4388112727649494}
+ m_Layer: 0
+ m_Name: lctrl:b_button03
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1270099051622174
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4912419501220768}
+ m_Layer: 0
+ m_Name: lctrl:b_trigger
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1293166971399762
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4512843973412506}
+ - component: {fileID: 114839188770181300}
+ - component: {fileID: 120398966450370718}
+ m_Layer: 0
+ m_Name: SelectionVisualizer
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1306310864550006
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4003427305254816}
+ - component: {fileID: 54323481038950528}
+ m_Layer: 0
+ m_Name: LeftHandAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1315822590551050
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4029300027851912}
+ - component: {fileID: 137914174105819778}
+ m_Layer: 0
+ m_Name: rctrl:controller_body_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1321730224802014
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4653219990905850}
+ - component: {fileID: 137040064589917182}
+ m_Layer: 0
+ m_Name: lctrl:side_trigger_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1324281428395128
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4887762857460790}
+ - component: {fileID: 137361936360025664}
+ m_Layer: 0
+ m_Name: rctrl:o_button_decal_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1340961996715960
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4578042792432272}
+ - component: {fileID: 20756120698993726}
+ m_Layer: 0
+ m_Name: LeftEyeAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1376108724270460
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4533541412696044}
+ - component: {fileID: 143737885462451472}
+ - component: {fileID: 114995186159704452}
+ - component: {fileID: 114370772782704848}
+ - component: {fileID: 114506725510804180}
+ m_Layer: 0
+ m_Name: OVRPlayerController
+ m_TagString: Player
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1382528177965624
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4232438007324584}
+ - component: {fileID: 137974184637426204}
+ m_Layer: 0
+ m_Name: rctrl:ring_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1387646442887024
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4937160217228036}
+ m_Layer: 0
+ m_Name: lctrl:b_stick_IGNORE
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1449194769942470
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4935933450093108}
+ - component: {fileID: 137877157368393854}
+ m_Layer: 0
+ m_Name: rctrl:thumbstick_ball_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1480171889903294
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4813744234393538}
+ - component: {fileID: 81402152418839728}
+ - component: {fileID: 20888543910458868}
+ - component: {fileID: 114301251741820116}
+ m_Layer: 0
+ m_Name: CenterEyeAnchor
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1482830777472834
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4352286269394490}
+ - component: {fileID: 137984259938474902}
+ m_Layer: 0
+ m_Name: lctrl:y_button_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1513286662987698
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4362283647895826}
+ - component: {fileID: 137961172473005288}
+ m_Layer: 0
+ m_Name: rctrl:b_button_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1513791001280726
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4910292472569130}
+ m_Layer: 0
+ m_Name: rctrl:b_button03
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1535555518007482
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4891010876983576}
+ m_Layer: 0
+ m_Name: rctrl:b_trigger
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1541658138338664
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4925291493155058}
+ - component: {fileID: 33669567690537454}
+ - component: {fileID: 23929117139990098}
+ m_Layer: 0
+ m_Name: Sphere
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1550272665643462
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4369252638870738}
+ m_Layer: 0
+ m_Name: rctrl:b_button02
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1567590013772700
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4229078841310128}
+ m_Layer: 0
+ m_Name: lctrl:b_stick
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1597946625617276
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4146450307585708}
+ m_Layer: 0
+ m_Name: lctrl:b_button02
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1652686885004074
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4245763007847274}
+ m_Layer: 0
+ m_Name: lctrl:b_button01
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1669541702215424
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4939801866340422}
+ - component: {fileID: 137004120655206302}
+ m_Layer: 0
+ m_Name: rctrl:side_trigger_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1722890906776760
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4317680904826592}
+ - component: {fileID: 137096908432534910}
+ m_Layer: 0
+ m_Name: lctrl:x_button_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1724730679745614
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4415734246794500}
+ - component: {fileID: 137627683081495916}
+ m_Layer: 0
+ m_Name: lctrl:main_trigger_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1794725814233656
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4759431838530558}
+ m_Layer: 0
+ m_Name: rctrl:right_touch_controller_world
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1798033961986062
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4622912572211856}
+ - component: {fileID: 137018590653453048}
+ m_Layer: 0
+ m_Name: lctrl:controller_body_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1801793881473454
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4145083746083470}
+ - component: {fileID: 212871506437813090}
+ m_Layer: 0
+ m_Name: MessageBox
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!1 &1814801617670008
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4409045441053244}
+ m_Layer: 0
+ m_Name: rctrl:b_stick
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1821865350508356
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4048411268462084}
+ - component: {fileID: 23559814118952182}
+ - component: {fileID: 102202735798131216}
+ m_Layer: 5
+ m_Name: Message
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1853435194287092
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4541191661546702}
+ - component: {fileID: 114027548463849574}
+ m_Layer: 0
+ m_Name: LTouch
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1863465214629996
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4471817159416240}
+ m_Layer: 0
+ m_Name: rctrl:b_button01
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1866140103649316
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4085176178632756}
+ - component: {fileID: 114021309938585376}
+ - component: {fileID: 114027885419952974}
+ m_Layer: 0
+ m_Name: EventSystem
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1868761396121918
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4752821825769380}
+ m_Layer: 0
+ m_Name: ForwardDirection
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1876116716611796
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4323039354355834}
+ m_Layer: 0
+ m_Name: lctrl:geometry_null
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1934979368438408
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4419754587853222}
+ - component: {fileID: 54109972591532240}
+ m_Layer: 0
+ m_Name: RightHandAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1945148176587708
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4214297037958582}
+ m_Layer: 0
+ m_Name: lctrl:left_touch_controller_world
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1959184156362832
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4309044444266546}
+ m_Layer: 0
+ m_Name: rctrl:b_stick_IGNORE
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1964298081179526
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4472463806269930}
+ m_Layer: 0
+ m_Name: TrackerAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1976751641897454
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4620243736624550}
+ - component: {fileID: 137491217167986792}
+ m_Layer: 0
+ m_Name: rctrl:surface_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1989181151997952
+GameObject:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4697233872465348}
+ - component: {fileID: 137478618964489738}
+ m_Layer: 0
+ m_Name: lctrl:thumbstick_ball_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4003427305254816
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1306310864550006}
+ 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: 4541191661546702}
+ m_Father: {fileID: 4127641868092796}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4029300027851912
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1315822590551050}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4455092461885150}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4034613778799152
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1061161000150842}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4455092461885150}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4048411268462084
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1821865350508356}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -1.57}
+ m_LocalScale: {x: 0.15807404, y: 0.38758174, z: 0.23063003}
+ m_Children: []
+ m_Father: {fileID: 4145083746083470}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4062604697072744
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1031802246653814}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4323039354355834}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4085176178632756
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1866140103649316}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -1.67, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4410846568587808}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4107914804363626
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1189129104510430}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4323039354355834}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4111184685383556
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1045658553142772}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4455092461885150}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4127641868092796
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1131268841222728}
+ 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: 4578042792432272}
+ - {fileID: 4813744234393538}
+ - {fileID: 4465248853309910}
+ - {fileID: 4472463806269930}
+ - {fileID: 4003427305254816}
+ - {fileID: 4419754587853222}
+ m_Father: {fileID: 4139459556117688}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4133093452106756
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1082399576097744}
+ m_LocalRotation: {x: -0.18065539, y: -0.13555649, z: -0.067166515, w: 0.97184193}
+ m_LocalPosition: {x: 0.013074442, y: -0.025639696, z: -0.027427113}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4214297037958582}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4139459556117688
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1029393255810302}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 1, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4127641868092796}
+ m_Father: {fileID: 4533541412696044}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4145083746083470
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1801793881473454}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.65811}
+ m_LocalScale: {x: 0.028354773, y: 0.00918638, z: 0.048044328}
+ m_Children:
+ - {fileID: 4048411268462084}
+ m_Father: {fileID: 4813744234393538}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4146450307585708
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1597946625617276}
+ m_LocalRotation: {x: 0.017080953, y: -0.07918932, z: 0.52647054, w: 0.84632504}
+ m_LocalPosition: {x: -0.0091353385, y: 0.005499125, z: -0.00011681918}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4214297037958582}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4178561024636574
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1008010802821890}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4323039354355834}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4214297037958582
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1945148176587708}
+ m_LocalRotation: {x: 0, y: 0.7071068, z: 0.7071068, w: -8.659561e-17}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4245763007847274}
+ - {fileID: 4146450307585708}
+ - {fileID: 4388112727649494}
+ - {fileID: 4133093452106756}
+ - {fileID: 4229078841310128}
+ - {fileID: 4912419501220768}
+ m_Father: {fileID: 4541191661546702}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4229078841310128
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1567590013772700}
+ m_LocalRotation: {x: 0.0027868259, y: 0.70437866, z: -0.0031505642, w: 0.7098119}
+ m_LocalPosition: {x: 0.010637393, y: 0.00497835, z: -0.009418557}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4937160217228036}
+ m_Father: {fileID: 4214297037958582}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4232438007324584
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1382528177965624}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4455092461885150}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4245763007847274
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1652686885004074}
+ m_LocalRotation: {x: 0.05660452, y: -0.05795374, z: -0.0046757394, w: 0.9967023}
+ m_LocalPosition: {x: -0.0019170768, y: -0.0073837424, z: -0.00091214647}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4214297037958582}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4309044444266546
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1959184156362832}
+ m_LocalRotation: {x: -4.5059287e-17, y: -0.70108956, z: -6.5911624e-17, w: 0.71307325}
+ m_LocalPosition: {x: -0.019321036, y: 0, z: 9.992007e-18}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4409045441053244}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4317680904826592
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1722890906776760}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4323039354355834}
+ m_RootOrder: 8
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4323039354355834
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1876116716611796}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4622912572211856}
+ - {fileID: 4415734246794500}
+ - {fileID: 4716441106909838}
+ - {fileID: 4178561024636574}
+ - {fileID: 4062604697072744}
+ - {fileID: 4653219990905850}
+ - {fileID: 4107914804363626}
+ - {fileID: 4697233872465348}
+ - {fileID: 4317680904826592}
+ - {fileID: 4352286269394490}
+ m_Father: {fileID: 4541191661546702}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4352286269394490
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1482830777472834}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4323039354355834}
+ m_RootOrder: 9
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4362283647895826
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1513286662987698}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4455092461885150}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4364185373208546
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1230995782317284}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4455092461885150}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4369252638870738
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1550272665643462}
+ m_LocalRotation: {x: 0.07876507, y: 0.01894126, z: 0.5343878, w: 0.8413483}
+ m_LocalPosition: {x: 0.009152712, y: 0.0054823146, z: 0.000030916483}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4759431838530558}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4388112727649494
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1231531406751686}
+ m_LocalRotation: {x: 0.05660452, y: -0.05795374, z: -0.0046757394, w: 0.9967023}
+ m_LocalPosition: {x: 0.012083728, y: -0.01402681, z: -0.0007126567}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4214297037958582}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4409045441053244
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1814801617670008}
+ m_LocalRotation: {x: -0.003149668, y: 0.7098123, z: 0.002783398, w: 0.7043784}
+ m_LocalPosition: {x: -0.010637393, y: 0.00497835, z: -0.009418557}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4309044444266546}
+ m_Father: {fileID: 4759431838530558}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4410846568587808
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1183045170563806}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 1.67, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4512843973412506}
+ - {fileID: 4533541412696044}
+ - {fileID: 4085176178632756}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4415734246794500
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1724730679745614}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4323039354355834}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4419754587853222
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1934979368438408}
+ 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: 4491574881290202}
+ m_Father: {fileID: 4127641868092796}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4444380538584808
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1078465785723288}
+ m_LocalRotation: {x: -0.17913595, y: 0.14914332, z: 0.022661837, w: 0.97218984}
+ m_LocalPosition: {x: -0.013074442, y: -0.025639696, z: -0.027427113}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4759431838530558}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4455092461885150
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1207312671622230}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4364185373208546}
+ - {fileID: 4362283647895826}
+ - {fileID: 4029300027851912}
+ - {fileID: 4111184685383556}
+ - {fileID: 4887762857460790}
+ - {fileID: 4034613778799152}
+ - {fileID: 4232438007324584}
+ - {fileID: 4939801866340422}
+ - {fileID: 4620243736624550}
+ - {fileID: 4935933450093108}
+ m_Father: {fileID: 4491574881290202}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4465248853309910
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1053801355523812}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4127641868092796}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4471817159416240
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1863465214629996}
+ m_LocalRotation: {x: 0.056604527, y: 0.05795374, z: 0.004675739, w: 0.9967023}
+ m_LocalPosition: {x: 0.0019170768, y: -0.0073837424, z: -0.00091214647}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4759431838530558}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4472463806269930
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1964298081179526}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4127641868092796}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4491574881290202
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1042878997297914}
+ 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: 4455092461885150}
+ - {fileID: 4759431838530558}
+ m_Father: {fileID: 4419754587853222}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4512843973412506
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1293166971399762}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -1.67, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4925291493155058}
+ m_Father: {fileID: 4410846568587808}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4533541412696044
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1376108724270460}
+ 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: 4139459556117688}
+ - {fileID: 4752821825769380}
+ m_Father: {fileID: 4410846568587808}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4541191661546702
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1853435194287092}
+ 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: 4323039354355834}
+ - {fileID: 4214297037958582}
+ m_Father: {fileID: 4003427305254816}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4578042792432272
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1340961996715960}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4127641868092796}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4620243736624550
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1976751641897454}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4455092461885150}
+ m_RootOrder: 8
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4622912572211856
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1798033961986062}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4323039354355834}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4653219990905850
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1321730224802014}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4323039354355834}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4697233872465348
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1989181151997952}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4323039354355834}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4716441106909838
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1141293064429872}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4323039354355834}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4752821825769380
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1868761396121918}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 1, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4533541412696044}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4759431838530558
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1794725814233656}
+ m_LocalRotation: {x: 0, y: 0.7071068, z: 0.7071068, w: -8.659561e-17}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4471817159416240}
+ - {fileID: 4369252638870738}
+ - {fileID: 4910292472569130}
+ - {fileID: 4444380538584808}
+ - {fileID: 4409045441053244}
+ - {fileID: 4891010876983576}
+ m_Father: {fileID: 4491574881290202}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4813744234393538
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1480171889903294}
+ 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: 4145083746083470}
+ m_Father: {fileID: 4127641868092796}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4887762857460790
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1324281428395128}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4455092461885150}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4891010876983576
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1535555518007482}
+ m_LocalRotation: {x: 0.056604527, y: 0.05795374, z: 0.004675739, w: 0.9967023}
+ m_LocalPosition: {x: 0.001420367, y: 0.021865888, z: -0.005495974}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4759431838530558}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4910292472569130
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1513791001280726}
+ m_LocalRotation: {x: 0.07876507, y: 0.01894126, z: 0.5343878, w: 0.8413483}
+ m_LocalPosition: {x: -0.012083728, y: -0.01402681, z: -0.0007126567}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4759431838530558}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4912419501220768
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1270099051622174}
+ m_LocalRotation: {x: -0.05795374, y: -0.05660452, z: 0.9967023, w: 0.0046757394}
+ m_LocalPosition: {x: -0.001420367, y: 0.021865888, z: -0.005495974}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4214297037958582}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4925291493155058
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1541658138338664}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 3}
+ m_LocalScale: {x: 0.05, y: 0.05, z: 0.05}
+ m_Children: []
+ m_Father: {fileID: 4512843973412506}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4935933450093108
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1449194769942470}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4455092461885150}
+ m_RootOrder: 9
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4937160217228036
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1387646442887024}
+ m_LocalRotation: {x: 0, y: -0.70108956, z: -0, w: 0.71307325}
+ m_LocalPosition: {x: -0.019321036, y: 0, z: 9.992007e-18}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4229078841310128}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4939801866340422
+Transform:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1669541702215424}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4455092461885150}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &20274601183661862
+Camera:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1053801355523812}
+ m_Enabled: 0
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_projectionMatrixMode: 1
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 2
+ m_HDR: 0
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!20 &20756120698993726
+Camera:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1340961996715960}
+ m_Enabled: 0
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_projectionMatrixMode: 1
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 1
+ m_HDR: 0
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!20 &20888543910458868
+Camera:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1480171889903294}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
+ m_projectionMatrixMode: 1
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.1
+ far clip plane: 1000
+ field of view: 90
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 0
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!23 &23559814118952182
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1821865350508356}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 0
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: ff2791f8cc50fd342832d3d80893c37f, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 4813744234393538}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23929117139990098
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1541658138338664}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 02f4d91e963f1e74d8bee0002c24efe7, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &33669567690537454
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1541658138338664}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!54 &54109972591532240
+Rigidbody:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1934979368438408}
+ serializedVersion: 2
+ m_Mass: 1
+ m_Drag: 0
+ m_AngularDrag: 0.05
+ m_UseGravity: 0
+ m_IsKinematic: 1
+ m_Interpolate: 0
+ m_Constraints: 0
+ m_CollisionDetection: 0
+--- !u!54 &54323481038950528
+Rigidbody:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1306310864550006}
+ serializedVersion: 2
+ m_Mass: 1
+ m_Drag: 0
+ m_AngularDrag: 0.05
+ m_UseGravity: 0
+ m_IsKinematic: 1
+ m_Interpolate: 0
+ m_Constraints: 0
+ m_CollisionDetection: 0
+--- !u!81 &81402152418839728
+AudioListener:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1480171889903294}
+ m_Enabled: 1
+--- !u!102 &102202735798131216
+TextMesh:
+ serializedVersion: 3
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1821865350508356}
+ m_Text: Trial Complete
+ m_OffsetZ: 0
+ m_CharacterSize: 1
+ m_LineSpacing: 1
+ m_Anchor: 4
+ m_Alignment: 1
+ m_TabSize: 4
+ m_FontSize: 100
+ m_FontStyle: 0
+ m_RichText: 1
+ m_Font: {fileID: 12800000, guid: 4eedafad5084240419e649245c7b2093, type: 3}
+ m_Color:
+ serializedVersion: 2
+ rgba: 4294967295
+--- !u!114 &114001859480273076
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1029393255810302}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: df9f338034892c44ebb62d97894772f1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ usePerEyeCameras: 0
+ useFixedUpdateForTracking: 0
+--- !u!114 &114021309938585376
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1866140103649316}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_FirstSelected: {fileID: 0}
+ m_sendNavigationEvents: 1
+ m_DragThreshold: 10
+--- !u!114 &114027548463849574
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1853435194287092}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: aed62bf3ae2456c408f247f96808ce96, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_modelGearVrController: {fileID: 1853435194287092}
+ m_modelOculusGoController: {fileID: 1853435194287092}
+ m_controller: 1
+--- !u!114 &114027885419952974
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1866140103649316}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b4a9c50de96f6d04386957f4741ac65c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ trackingSpace: {fileID: 4127641868092796}
+ joyPadClickButton: 8192
+ performSphereCastForGazepointer: 0
+ matchNormalOnPhysicsColliders: 0
+ useLeftStickScroll: 1
+ leftStickDeadZone: 0.15
+ useSwipeScroll: 1
+ minSwipeMovement: 0
+ swipeScrollScale: 4
+ activeController: 0
+ angleDragThreshold: 1
+ m_HorizontalAxis: Horizontal
+ m_VerticalAxis: Vertical
+ m_SubmitButton: Submit
+ m_CancelButton: Cancel
+ m_InputActionsPerSecond: 10
+ m_AllowActivationOnMobileDevice: 1
+--- !u!114 &114301251741820116
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1480171889903294}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: df8e1d778abf442e4bec449c360e9e1c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ fadeTime: 2
+ fadeColor: {r: 0.01, g: 0.01, b: 0.01, a: 1}
+ fadeOnStart: 1
+ renderQueue: 5000
+--- !u!114 &114370772782704848
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1376108724270460}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4f07515ada089df47868559a20dd6783, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ quitKey: 27
+ fadeInTexture: {fileID: 0}
+ speedRotationIncrement: 0.05
+ layerName: Default
+--- !u!114 &114463545341352292
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1029393255810302}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7e933e81d3c20c74ea6fdc708a67e3a5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ queueAhead: 1
+ useRecommendedMSAALevel: 0
+ _monoscopic: 0
+ enableAdaptiveResolution: 0
+ minRenderScale: 0.7
+ maxRenderScale: 1
+ expandMixedRealityCapturePropertySheet: 0
+ enableMixedReality: 0
+ compositionMethod: 0
+ extraHiddenLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ capturingCameraDevice: 0
+ flipCameraFrameHorizontally: 0
+ flipCameraFrameVertically: 0
+ handPoseStateLatency: 0
+ sandwichCompositionRenderLatency: 0
+ sandwichCompositionBufferedFrames: 8
+ chromaKeyColor: {r: 0, g: 1, b: 0, a: 1}
+ chromaKeySimilarity: 0.6
+ chromaKeySmoothRange: 0.03
+ chromaKeySpillRange: 0.06
+ useDynamicLighting: 0
+ depthQuality: 1
+ dynamicLightingSmoothFactor: 8
+ dynamicLightingDepthVariationClampingValue: 0.001
+ virtualGreenScreenType: 0
+ virtualGreenScreenTopY: 10
+ virtualGreenScreenBottomY: -10
+ virtualGreenScreenApplyDepthCulling: 0
+ virtualGreenScreenDepthTolerance: 0.2
+ _trackingOriginType: 0
+ usePositionTracking: 1
+ useRotationTracking: 1
+ useIPDInPositionTracking: 1
+ resetTrackerOnLoad: 0
+ AllowRecenter: 1
+ _reorientHMDOnControllerRecenter: 1
+--- !u!114 &114506725510804180
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1376108724270460}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b71d1996d67004241a3b69960856ffcb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &114839188770181300
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1293166971399762}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 12283131fa5724f44b343883ae474072, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ trackingSpace: {fileID: 4127641868092796}
+ linePointer: {fileID: 120398966450370718}
+ gazePointer: {fileID: 4925291493155058}
+ rayDrawDistance: 500
+ gazeDrawDistance: 3
+ activeController: 0
+--- !u!114 &114840397608499616
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1029393255810302}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8a8570f210d5cef498074d4fe90d403f, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EventMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &114962958340395502
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1042878997297914}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: aed62bf3ae2456c408f247f96808ce96, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_modelGearVrController: {fileID: 1042878997297914}
+ m_modelOculusGoController: {fileID: 1042878997297914}
+ m_controller: 2
+--- !u!114 &114995186159704452
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1376108724270460}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0950df82e7936c84983497630bde5b54, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Acceleration: 0.1
+ Damping: 0.3
+ BackAndSideDampen: 0.5
+ JumpForce: 0.3
+ RotationAmount: 1.5
+ RotationRatchet: 45
+ SnapRotation: 1
+ FixedSpeedSteps: 0
+ HmdResetsY: 1
+ HmdRotatesY: 1
+ GravityModifier: 1
+ useProfileData: 0
+ EnableLinearMovement: 0
+ EnableRotation: 0
+--- !u!120 &120398966450370718
+LineRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1293166971399762}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 0
+ m_LightProbeUsage: 0
+ m_ReflectionProbeUsage: 0
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 0}
+ - {fileID: 2100000, guid: 02f4d91e963f1e74d8bee0002c24efe7, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_Positions:
+ - {x: 0, y: 0, z: 0}
+ - {x: 0, y: 0, z: 1}
+ m_Parameters:
+ serializedVersion: 2
+ widthMultiplier: 0.02
+ widthCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ colorGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 1, b: 1, a: 1}
+ key1: {r: 1, g: 1, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ numCornerVertices: 0
+ numCapVertices: 0
+ alignment: 0
+ textureMode: 0
+ generateLightingData: 0
+ m_UseWorldSpace: 1
+ m_Loop: 0
+--- !u!137 &137004120655206302
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1669541702215424}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300000, guid: 270ca9aaa39af4d4bb26754fdce0c971, type: 3}
+ m_Bones:
+ - {fileID: 4444380538584808}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4444380538584808}
+ m_AABB:
+ m_Center: {x: 0.015085926, y: 0.00079575554, z: 0.0022845895}
+ m_Extent: {x: 0.0075142607, y: 0.014562387, z: 0.0074783238}
+ m_DirtyAABB: 0
+--- !u!137 &137018590653453048
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1798033961986062}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300008, guid: 1bf8f52eeebe8e149b9d6e3477251532, type: 3}
+ m_Bones:
+ - {fileID: 4214297037958582}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4214297037958582}
+ m_AABB:
+ m_Center: {x: 0.0012377053, y: -0.01906057, z: -0.031179678}
+ m_Extent: {x: 0.030484851, y: 0.051344883, z: 0.03589144}
+ m_DirtyAABB: 0
+--- !u!137 &137040064589917182
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1321730224802014}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300016, guid: 1bf8f52eeebe8e149b9d6e3477251532, type: 3}
+ m_Bones:
+ - {fileID: 4133093452106756}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4133093452106756}
+ m_AABB:
+ m_Center: {x: -0.015075568, y: -0.000016345643, z: 0.0018507424}
+ m_Extent: {x: 0.0069265533, y: 0.014548335, z: 0.007307569}
+ m_DirtyAABB: 0
+--- !u!137 &137096908432534910
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1722890906776760}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300002, guid: 1bf8f52eeebe8e149b9d6e3477251532, type: 3}
+ m_Bones:
+ - {fileID: 4245763007847274}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4245763007847274}
+ m_AABB:
+ m_Center: {x: -0.00000072829425, y: 0.000013418496, z: 0.0004995642}
+ m_Extent: {x: 0.0050891023, y: 0.005111114, z: 0.0025754946}
+ m_DirtyAABB: 0
+--- !u!137 &137148132631994804
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1045658553142772}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300004, guid: 270ca9aaa39af4d4bb26754fdce0c971, type: 3}
+ m_Bones:
+ - {fileID: 4891010876983576}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4891010876983576}
+ m_AABB:
+ m_Center: {x: -0.0006609438, y: -0.0013324562, z: -0.013972085}
+ m_Extent: {x: 0.014561905, y: 0.009363498, z: 0.013364948}
+ m_DirtyAABB: 0
+--- !u!137 &137180000663918186
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1061161000150842}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300002, guid: 270ca9aaa39af4d4bb26754fdce0c971, type: 3}
+ m_Bones:
+ - {fileID: 4910292472569130}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4910292472569130}
+ m_AABB:
+ m_Center: {x: -0.00000026635826, y: -0.00000013131648, z: 0.0005419669}
+ m_Extent: {x: 0.004489839, y: 0.0044893455, z: 0.0007474746}
+ m_DirtyAABB: 0
+--- !u!137 &137204444273523720
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1189129104510430}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300000, guid: 1bf8f52eeebe8e149b9d6e3477251532, type: 3}
+ m_Bones:
+ - {fileID: 4214297037958582}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4214297037958582}
+ m_AABB:
+ m_Center: {x: 0.00016466714, y: 0.00024955533, z: -0.0010734661}
+ m_Extent: {x: 0.02819586, y: 0.02827545, z: 0.005969927}
+ m_DirtyAABB: 0
+--- !u!137 &137361936360025664
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1324281428395128}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300018, guid: 270ca9aaa39af4d4bb26754fdce0c971, type: 3}
+ m_Bones:
+ - {fileID: 4910292472569130}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4910292472569130}
+ m_AABB:
+ m_Center: {x: 0.00004066783, y: 0.00002745376, z: 0.0012303367}
+ m_Extent: {x: 0.0015236214, y: 0.0021297487, z: 0.00001941109}
+ m_DirtyAABB: 0
+--- !u!137 &137468296976460544
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1230995782317284}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300016, guid: 270ca9aaa39af4d4bb26754fdce0c971, type: 3}
+ m_Bones:
+ - {fileID: 4471817159416240}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4471817159416240}
+ m_AABB:
+ m_Center: {x: 0.0000007292256, y: 0.000013417564, z: 0.00051031867}
+ m_Extent: {x: 0.0050891023, y: 0.005111115, z: 0.0025862483}
+ m_DirtyAABB: 0
+--- !u!137 &137478618964489738
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1989181151997952}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300014, guid: 1bf8f52eeebe8e149b9d6e3477251532, type: 3}
+ m_Bones:
+ - {fileID: 4214297037958582}
+ - {fileID: 4229078841310128}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4214297037958582}
+ m_AABB:
+ m_Center: {x: 0.010604477, y: 0.0049807085, z: 0.0022465447}
+ m_Extent: {x: 0.010754766, y: 0.010751986, z: 0.007853852}
+ m_DirtyAABB: 0
+--- !u!137 &137491217167986792
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1976751641897454}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300010, guid: 270ca9aaa39af4d4bb26754fdce0c971, type: 3}
+ m_Bones:
+ - {fileID: 4759431838530558}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4759431838530558}
+ m_AABB:
+ m_Center: {x: -0.00016466714, y: 0.00024955347, z: -0.0010734657}
+ m_Extent: {x: 0.02819586, y: 0.02827545, z: 0.0059699244}
+ m_DirtyAABB: 0
+--- !u!137 &137612276124298222
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1008010802821890}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300012, guid: 1bf8f52eeebe8e149b9d6e3477251532, type: 3}
+ m_Bones:
+ - {fileID: 4388112727649494}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4388112727649494}
+ m_AABB:
+ m_Center: {x: 0.00000037020072, y: 0.00000087032095, z: 0.00057196105}
+ m_Extent: {x: 0.004508083, y: 0.004509521, z: 0.0007474739}
+ m_DirtyAABB: 0
+--- !u!137 &137613867366649898
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1141293064429872}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300018, guid: 1bf8f52eeebe8e149b9d6e3477251532, type: 3}
+ m_Bones:
+ - {fileID: 4388112727649494}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4388112727649494}
+ m_AABB:
+ m_Center: {x: 0.000017451588, y: -0.00010048866, z: 0.0012767098}
+ m_Extent: {x: 0.00211959, y: 0.001628002, z: 0.000015275553}
+ m_DirtyAABB: 0
+--- !u!137 &137627683081495916
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1724730679745614}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300010, guid: 1bf8f52eeebe8e149b9d6e3477251532, type: 3}
+ m_Bones:
+ - {fileID: 4912419501220768}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4912419501220768}
+ m_AABB:
+ m_Center: {x: -0.0006609438, y: 0.0013324535, z: -0.013972079}
+ m_Extent: {x: 0.0145619055, y: 0.009363498, z: 0.0133649465}
+ m_DirtyAABB: 0
+--- !u!137 &137805404417022070
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1031802246653814}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300006, guid: 1bf8f52eeebe8e149b9d6e3477251532, type: 3}
+ m_Bones:
+ - {fileID: 4214297037958582}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4214297037958582}
+ m_AABB:
+ m_Center: {x: 0.016699282, y: 0.010818447, z: -0.036364146}
+ m_Extent: {x: 0.054633915, y: 0.02167825, z: 0.050220706}
+ m_DirtyAABB: 0
+--- !u!137 &137877157368393854
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1449194769942470}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300008, guid: 270ca9aaa39af4d4bb26754fdce0c971, type: 3}
+ m_Bones:
+ - {fileID: 4759431838530558}
+ - {fileID: 4409045441053244}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4759431838530558}
+ m_AABB:
+ m_Center: {x: -0.01054777, y: 0.004984765, z: 0.00224772}
+ m_Extent: {x: 0.010899382, y: 0.010843774, z: 0.007860384}
+ m_DirtyAABB: 0
+--- !u!137 &137914174105819778
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1315822590551050}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300012, guid: 270ca9aaa39af4d4bb26754fdce0c971, type: 3}
+ m_Bones:
+ - {fileID: 4759431838530558}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4759431838530558}
+ m_AABB:
+ m_Center: {x: -0.0012377053, y: -0.019060574, z: -0.031160347}
+ m_Extent: {x: 0.030484851, y: 0.051344886, z: 0.035910763}
+ m_DirtyAABB: 0
+--- !u!137 &137961172473005288
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1513286662987698}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300014, guid: 270ca9aaa39af4d4bb26754fdce0c971, type: 3}
+ m_Bones:
+ - {fileID: 4369252638870738}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4369252638870738}
+ m_AABB:
+ m_Center: {x: 0.000000345055, y: -0.0000009192154, z: 0.0003571303}
+ m_Extent: {x: 0.0050524976, y: 0.0050528734, z: 0.0025179689}
+ m_DirtyAABB: 0
+--- !u!137 &137974184637426204
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1382528177965624}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300006, guid: 270ca9aaa39af4d4bb26754fdce0c971, type: 3}
+ m_Bones:
+ - {fileID: 4759431838530558}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4759431838530558}
+ m_AABB:
+ m_Center: {x: -0.016699282, y: 0.010818443, z: -0.036364153}
+ m_Extent: {x: 0.054633915, y: 0.021678247, z: 0.050220713}
+ m_DirtyAABB: 0
+--- !u!137 &137984259938474902
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1482830777472834}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d8a202bc350b09c4e808ea37c6929755, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300004, guid: 1bf8f52eeebe8e149b9d6e3477251532, type: 3}
+ m_Bones:
+ - {fileID: 4146450307585708}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4146450307585708}
+ m_AABB:
+ m_Center: {x: 0.0000023958273, y: -0.000002474524, z: 0.0004961197}
+ m_Extent: {x: 0.005060065, y: 0.0050237104, z: 0.0025072566}
+ m_DirtyAABB: 0
+--- !u!143 &143737885462451472
+CharacterController:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1376108724270460}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Height: 2
+ m_Radius: 0.5
+ m_SlopeLimit: 45
+ m_StepOffset: 0.3
+ m_SkinWidth: 0.01
+ m_MinMoveDistance: 0
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!212 &212871506437813090
+SpriteRenderer:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1801793881473454}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_Sprite: {fileID: 21300000, guid: 744b884f5ab1b4aefb7838eeec4d046a, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 19.2, y: 10.8}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
diff --git a/Assets/FittsLawVR/Prefabs/Oculus.prefab.meta b/Assets/FittsLawVR/Prefabs/Oculus.prefab.meta
new file mode 100644
index 0000000..cfc1584
--- /dev/null
+++ b/Assets/FittsLawVR/Prefabs/Oculus.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3d0ed8ddd4ae30547a37f12335d8a28e
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/GoogleVR/GVRVideoPlayer.unitypackage.meta b/Assets/GoogleVR/GVRVideoPlayer.unitypackage.meta
new file mode 100644
index 0000000..7071b37
--- /dev/null
+++ b/Assets/GoogleVR/GVRVideoPlayer.unitypackage.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 39850532bc74a4078a24832112e8aef3
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/GoogleVR/Scripts/InstantPreview/InstantPreview.apk.meta b/Assets/GoogleVR/Scripts/InstantPreview/InstantPreview.apk.meta
new file mode 100644
index 0000000..88dd0ac
--- /dev/null
+++ b/Assets/GoogleVR/Scripts/InstantPreview/InstantPreview.apk.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: dc278786e6540af428ccbf7825495004
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/JsonDotNet.meta b/Assets/JsonDotNet.meta
new file mode 100644
index 0000000..70e7f13
--- /dev/null
+++ b/Assets/JsonDotNet.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2947be5c0c8e8c2409ef2ae8c294bf23
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/JsonDotNet/Assemblies.meta b/Assets/JsonDotNet/Assemblies.meta
new file mode 100644
index 0000000..59ac16b
--- /dev/null
+++ b/Assets/JsonDotNet/Assemblies.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 577d9725f58264943855b8ac185531fe
+folderAsset: yes
+timeCreated: 1466788344
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/JsonDotNet/Assemblies/AOT.meta b/Assets/JsonDotNet/Assemblies/AOT.meta
new file mode 100644
index 0000000..f9dba64
--- /dev/null
+++ b/Assets/JsonDotNet/Assemblies/AOT.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 14f21d7a1e53a8c4e87b25526a7eb63c
+folderAsset: yes
+timeCreated: 1466788345
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/JsonDotNet/Assemblies/AOT/Newtonsoft.Json.XML b/Assets/JsonDotNet/Assemblies/AOT/Newtonsoft.Json.XML
new file mode 100644
index 0000000..2b72b8e
--- /dev/null
+++ b/Assets/JsonDotNet/Assemblies/AOT/Newtonsoft.Json.XML
@@ -0,0 +1,8015 @@
+
+
+
+ Newtonsoft.Json
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary.
+
+
+ true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false .
+
+
+
+
+ Gets or sets a value indicating whether the root object will be read as a JSON array.
+
+
+ true if the root object will be read as a JSON array; otherwise, false .
+
+
+
+
+ Gets or sets the used when reading values from BSON.
+
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The stream.
+
+
+
+ Initializes a new instance of the class.
+
+ The reader.
+
+
+
+ Initializes a new instance of the class.
+
+ The stream.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The reader.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Reads the next JSON token from the stream.
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Changes the to Closed.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets or sets the used when writing values to BSON.
+ When set to no conversion will occur.
+
+ The used when writing values to BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The stream.
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
+
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes out a comment /*...*/
containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Closes this stream and the underlying stream.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value that represents a BSON object id.
+
+ The Object ID value to write.
+
+
+
+ Writes a BSON regex.
+
+ The regex pattern.
+ The regex options.
+
+
+
+ Represents a BSON Oid (object id).
+
+
+
+
+ Gets or sets the value of the Oid.
+
+ The value of the Oid.
+
+
+
+ Initializes a new instance of the class.
+
+ The Oid value.
+
+
+
+ Converts a binary value to and from a base 64 string value.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Create a custom object
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Creates an object which will then be populated by the serializer.
+
+ Type of the object.
+ The created object.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false .
+
+
+
+
+ Provides a base class for converting a to and from JSON.
+
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Converts an to and from its name string value.
+
+
+
+
+ Gets or sets a value indicating whether the written enum text should be camel case.
+
+ true if the written enum text will be camel case; otherwise, false .
+
+
+
+ Gets or sets a value indicating whether integer values are allowed.
+
+ true if integers are allowed; otherwise, false .
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the written enum text will be camel case; otherwise, false .
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Json Converter for Vector2, Vector3 and Vector4. Only serializes x, y, (z) and (w) properties.
+
+
+
+
+ Default Constructor - All Vector types enabled by default
+
+
+
+
+ Selectively enable Vector types
+
+ Use for Vector2 objects
+ Use for Vector3 objects
+ Use for Vector4 objects
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Converts a to and from a string (e.g. "1.2.3.4").
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z).
+
+
+
+
+ Gets or sets the date time styles used when converting a date to and from JSON.
+
+ The date time styles used when converting a date to and from JSON.
+
+
+
+ Gets or sets the date time format used when converting a date to and from JSON.
+
+ The date time format used when converting a date to and from JSON.
+
+
+
+ Gets or sets the culture used when converting a date to and from JSON.
+
+ The culture used when converting a date to and from JSON.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)).
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts XML to and from JSON.
+
+
+
+
+ Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements.
+
+ The name of the deserialize root element.
+
+
+
+ Gets or sets a flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ true if the array attibute is written to the XML; otherwise, false .
+
+
+
+ Gets or sets a value indicating whether to write the root JSON object.
+
+ true if the JSON root object is omitted; otherwise, false .
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The calling serializer.
+ The value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Checks if the attributeName is a namespace attribute.
+
+ Attribute name to test.
+ The attribute name prefix if it has one, otherwise an empty string.
+ True if attribute name is for a namespace attribute, otherwise false.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false .
+
+
+
+
+ Specifies how constructors are used when initializing objects during deserialization by the .
+
+
+
+
+ First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor.
+
+
+
+
+ Json.NET will use a non-public default constructor before falling back to a paramatized constructor.
+
+
+
+
+ Specifies how dates are formatted when writing JSON text.
+
+
+
+
+ Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z".
+
+
+
+
+ Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/".
+
+
+
+
+ Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text.
+
+
+
+
+ Date formatted strings are not parsed to a date type and are read as strings.
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+
+
+ Treat as a local time if a is being converted to a string.
+ If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+
+
+ Time zone information should be preserved when converting.
+
+
+
+
+ Specifies float format handling options when writing special floating point numbers, e.g. ,
+ and with .
+
+
+
+
+ Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity".
+
+
+
+
+ Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity.
+ Note that this will produce non-valid JSON.
+
+
+
+
+ Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a property.
+
+
+
+
+ Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Specifies formatting options for the .
+
+
+
+
+ No special formatting is applied. This is the default.
+
+
+
+
+ Causes child objects to be indented according to the and settings.
+
+
+
+
+ Provides an interface for using pooled arrays.
+
+ The array type content.
+
+
+
+ Rent a array from the pool. This array must be returned when it is no longer needed.
+
+ The minimum required length of the array. The returned array may be longer.
+ The rented array from the pool. This array must be returned when it is no longer needed.
+
+
+
+ Return an array to the pool.
+
+ The array that is being returned.
+
+
+
+ Instructs the to use the specified constructor when deserializing that object.
+
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Instructs the to deserialize properties with no matching class member into the specified collection
+ and write values during serialization.
+
+
+
+
+ Gets or sets a value that indicates whether to write extension data when serializing the object.
+
+
+ true to write extension data when serializing the object; otherwise, false . The default is true .
+
+
+
+
+ Gets or sets a value that indicates whether to read extension data when deserializing the object.
+
+
+ true to read extension data when deserializing the object; otherwise, false . The default is true .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Instructs the to always serialize the member, and require the member has a value.
+
+
+
+
+ Specifies how JSON comments are handled when loading JSON.
+
+
+
+
+ Ignore comments.
+
+
+
+
+ Load comments as a with type .
+
+
+
+
+ Specifies how line information is handled when loading JSON.
+
+
+
+
+ Ignore line information.
+
+
+
+
+ Load line information.
+
+
+
+
+ Represents a view of a .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+
+
+
+ When overridden in a derived class, returns whether resetting an object changes its value.
+
+
+ true if resetting the component changes its value; otherwise, false.
+
+ The component to test for reset capability.
+
+
+
+
+ When overridden in a derived class, gets the current value of the property on a component.
+
+
+ The value of a property for a given component.
+
+ The component with the property for which to retrieve the value.
+
+
+
+
+ When overridden in a derived class, resets the value for this property of the component to the default value.
+
+ The component with the property value that is to be reset to the default value.
+
+
+
+
+ When overridden in a derived class, sets the value of the component to a different value.
+
+ The component with the property value that is to be set.
+ The new value.
+
+
+
+
+ When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted.
+
+
+ true if the property should be persisted; otherwise, false.
+
+ The component with the property to be examined for persistence.
+
+
+
+
+ When overridden in a derived class, gets the type of the component this property is bound to.
+
+
+ A that represents the type of component this property is bound to. When the or methods are invoked, the object specified might be an instance of this type.
+
+
+
+
+ When overridden in a derived class, gets a value indicating whether this property is read-only.
+
+
+ true if the property is read-only; otherwise, false.
+
+
+
+
+ When overridden in a derived class, gets the type of the property.
+
+
+ A that represents the type of the property.
+
+
+
+
+ Gets the hash code for the name of the member.
+
+
+
+ The hash code for the name of the member.
+
+
+
+
+ Specifies the settings used when loading JSON.
+
+
+
+
+ Gets or sets how JSON comments are handled when loading JSON.
+
+ The JSON comment handling.
+
+
+
+ Gets or sets how JSON line info is handled when loading JSON.
+
+ The JSON line info handling.
+
+
+
+ Specifies the settings used when merging JSON.
+
+
+
+
+ Gets or sets the method used when merging JSON arrays.
+
+ The method used when merging JSON arrays.
+
+
+
+ Gets or sets how how null value properties are merged.
+
+ How null value properties are merged.
+
+
+
+ Specifies how JSON arrays are merged together.
+
+
+
+ Concatenate arrays.
+
+
+ Union arrays, skipping items that already exist.
+
+
+ Replace all array items.
+
+
+ Merge array items together, matched by index.
+
+
+
+ Specifies how null value properties are merged.
+
+
+
+
+ The content's null value properties will be ignored during merging.
+
+
+
+
+ The content's null value properties will be merged.
+
+
+
+
+ Represents a raw JSON string.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class.
+
+ The raw json.
+
+
+
+ Creates an instance of with the content of the reader's current token.
+
+ The reader.
+ An instance of with the content of the reader's current token.
+
+
+
+ Represents a collection of objects.
+
+ The type of token
+
+
+
+ Gets the with the specified key.
+
+
+
+
+
+ Compares tokens to determine whether they are equal.
+
+
+
+
+ Determines whether the specified objects are equal.
+
+ The first object of type to compare.
+ The second object of type to compare.
+
+ true if the specified objects are equal; otherwise, false.
+
+
+
+
+ Returns a hash code for the specified object.
+
+ The for which a hash code is to be returned.
+ A hash code for the specified object.
+ The type of is a reference type and is null.
+
+
+
+ Contains the LINQ to JSON extension methods.
+
+
+
+
+ Returns a collection of tokens that contains the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the descendants of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, and the descendants of every token in the source collection.
+
+
+
+ Returns a collection of child properties of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the properties of every object in the source collection.
+
+
+
+ Returns a collection of child values of every object in the source collection with the given key.
+
+ An of that contains the source collection.
+ The token key.
+ An of that contains the values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of child values of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child values of every object in the source collection with the given key.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ The token key.
+ An that contains the converted values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of converted child values of every object in the source collection.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Converts the value.
+
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Converts the value.
+
+ The source collection type.
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Returns a collection of child tokens of every array in the source collection.
+
+ The source collection type.
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child tokens of every array in the source collection.
+
+ An of that contains the source collection.
+ The type to convert the values to.
+ The source collection type.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Returns the input typed as .
+
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Returns the input typed as .
+
+ The source collection type.
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Represents a JSON constructor.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets or sets the name of this constructor.
+
+ The constructor name.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ The constructor name.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a token that can contain other tokens.
+
+
+
+
+ Occurs when the list changes or an item in the list changes.
+
+
+
+
+ Occurs before an item is added to the collection.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false .
+
+
+
+
+ Get the first child token of this token.
+
+
+ A containing the first child token of the .
+
+
+
+
+ Get the last child token of this token.
+
+
+ A containing the last child token of the .
+
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+
+ An of containing the child tokens of this , in document order.
+
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+
+ A containing the child values of this , in document order.
+
+
+
+
+ Returns a collection of the descendant tokens for this token in document order.
+
+ An containing the descendant tokens of the .
+
+
+
+ Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.
+
+ An containing this token, and all the descendant tokens of the .
+
+
+
+ Adds the specified content as children of this .
+
+ The content to be added.
+
+
+
+ Adds the specified content as the first children of this .
+
+ The content to be added.
+
+
+
+ Creates an that can be used to add tokens to the .
+
+ An that is ready to have content written to it.
+
+
+
+ Replaces the children nodes of this token with the specified content.
+
+ The content.
+
+
+
+ Removes the child nodes from this token.
+
+
+
+
+ Merge the specified content into this .
+
+ The content to be merged.
+
+
+
+ Merge the specified content into this using .
+
+ The content to be merged.
+ The used to merge the content.
+
+
+
+ Gets the count of child JSON tokens.
+
+ The count of child JSON tokens
+
+
+
+ Represents a collection of objects.
+
+ The type of token
+
+
+
+ An empty collection of objects.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The enumerable.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Gets the with the specified key.
+
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false .
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false .
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Represents a JSON object.
+
+
+
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Occurs when a property value is changing.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets an of this object's properties.
+
+ An of this object's properties.
+
+
+
+ Gets a the specified name.
+
+ The property name.
+ A with the specified name or null.
+
+
+
+ Gets an of this object's property values.
+
+ An of this object's property values.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the with the specified property name.
+
+
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified property name.
+
+ Name of the property.
+ The with the specified property name.
+
+
+
+ Gets the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ One of the enumeration values that specifies how the strings will be compared.
+ The with the specified property name.
+
+
+
+ Tries to get the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ The value.
+ One of the enumeration values that specifies how the strings will be compared.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Adds the specified property name.
+
+ Name of the property.
+ The value.
+
+
+
+ Removes the property with the specified name.
+
+ Name of the property.
+ true if item was successfully removed; otherwise, false.
+
+
+
+ Tries the get value.
+
+ Name of the property.
+ The value.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Returns the properties for this instance of a component.
+
+
+ A that represents the properties for this component instance.
+
+
+
+
+ Returns the properties for this instance of a component using the attribute array as a filter.
+
+ An array of type that is used as a filter.
+
+ A that represents the filtered properties for this component instance.
+
+
+
+
+ Returns a collection of custom attributes for this instance of a component.
+
+
+ An containing the attributes for this object.
+
+
+
+
+ Returns the class name of this instance of a component.
+
+
+ The class name of the object, or null if the class does not have a name.
+
+
+
+
+ Returns the name of this instance of a component.
+
+
+ The name of the object, or null if the object does not have a name.
+
+
+
+
+ Returns a type converter for this instance of a component.
+
+
+ A that is the converter for this object, or null if there is no for this object.
+
+
+
+
+ Returns the default event for this instance of a component.
+
+
+ An that represents the default event for this object, or null if this object does not have events.
+
+
+
+
+ Returns the default property for this instance of a component.
+
+
+ A that represents the default property for this object, or null if this object does not have properties.
+
+
+
+
+ Returns an editor of the specified type for this instance of a component.
+
+ A that represents the editor for this object.
+
+ An of the specified type that is the editor for this object, or null if the editor cannot be found.
+
+
+
+
+ Returns the events for this instance of a component using the specified attribute array as a filter.
+
+ An array of type that is used as a filter.
+
+ An that represents the filtered events for this component instance.
+
+
+
+
+ Returns the events for this instance of a component.
+
+
+ An that represents the events for this component instance.
+
+
+
+
+ Returns an object that contains the property described by the specified property descriptor.
+
+ A that represents the property whose owner is to be found.
+
+ An that represents the owner of the specified property.
+
+
+
+
+ Represents a JSON array.
+
+
+
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the at the specified index.
+
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+
+ is not a valid index in the .
+ The is read-only.
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+
+ is not a valid index in the .
+ The is read-only.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+ The is read-only.
+
+
+
+ Removes all items from the .
+
+ The is read-only.
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies to.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+ The is read-only.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets the at the reader's current position.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+
+
+
+ Reads the next JSON token from the stream.
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets the at the writer's current position.
+
+
+
+
+ Gets the token being writen.
+
+ The token being writen.
+
+
+
+ Initializes a new instance of the class writing to the given .
+
+ The container being written to.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
+
+
+
+
+ Closes this stream and the underlying stream.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes out a comment /*...*/
containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Represents an abstract JSON token.
+
+
+
+
+ Gets a comparer that can compare two tokens for value equality.
+
+ A that can compare two nodes for value equality.
+
+
+
+ Gets or sets the parent.
+
+ The parent.
+
+
+
+ Gets the root of this .
+
+ The root of this .
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false .
+
+
+
+
+ Compares the values of two tokens, including the values of all descendant tokens.
+
+ The first to compare.
+ The second to compare.
+ true if the tokens are equal; otherwise false.
+
+
+
+ Gets the next sibling token of this node.
+
+ The that contains the next sibling token.
+
+
+
+ Gets the previous sibling token of this node.
+
+ The that contains the previous sibling token.
+
+
+
+ Gets the path of the JSON token.
+
+
+
+
+ Adds the specified content immediately after this token.
+
+ A content object that contains simple content or a collection of content objects to be added after this token.
+
+
+
+ Adds the specified content immediately before this token.
+
+ A content object that contains simple content or a collection of content objects to be added before this token.
+
+
+
+ Returns a collection of the ancestor tokens of this token.
+
+ A collection of the ancestor tokens of this token.
+
+
+
+ Returns a collection of tokens that contain this token, and the ancestors of this token.
+
+ A collection of tokens that contain this token, and the ancestors of this token.
+
+
+
+ Returns a collection of the sibling tokens after this token, in document order.
+
+ A collection of the sibling tokens after this tokens, in document order.
+
+
+
+ Returns a collection of the sibling tokens before this token, in document order.
+
+ A collection of the sibling tokens before this token, in document order.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets the with the specified key converted to the specified type.
+
+ The type to convert the token to.
+ The token key.
+ The converted token value.
+
+
+
+ Get the first child token of this token.
+
+ A containing the first child token of the .
+
+
+
+ Get the last child token of this token.
+
+ A containing the last child token of the .
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+ An of containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
+
+ The type to filter the child tokens on.
+ A containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+ A containing the child values of this , in document order.
+
+
+
+ Removes this token from its parent.
+
+
+
+
+ Replaces this token with the specified token.
+
+ The value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Returns the indented JSON for this token.
+
+
+ The indented JSON for this token.
+
+
+
+
+ Returns the JSON for this token using the given formatting and converters.
+
+ Indicates how the output is formatted.
+ A collection of which will be used when writing the token.
+ The JSON for this token using the given formatting and converters.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to [].
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from [] to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Creates an for this token.
+
+ An that can be used to read this token and its descendants.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the value of the specified object
+
+
+
+ Creates a from an object using the specified .
+
+ The object that will be used to create .
+ The that will be used when reading the object.
+ A with the value of the specified object
+
+
+
+ Creates the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+
+ An that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ An that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ An that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+
+ An that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A , or null.
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ A .
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ An that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ An that contains the selected elements.
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A new instance of the .
+
+
+
+ Adds an object to the annotation list of this .
+
+ The annotation to add.
+
+
+
+ Get the first annotation object of the specified type from this .
+
+ The type of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets the first annotation object of the specified type from this .
+
+ The of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The type of the annotations to retrieve.
+ An that contains the annotations for this .
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The of the annotations to retrieve.
+ An of that contains the annotations that match the specified type for this .
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The type of annotations to remove.
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The of annotations to remove.
+
+
+
+ Represents a JSON property.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the property value.
+
+ The property value.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Specifies the type of token.
+
+
+
+
+ No token type has been set.
+
+
+
+
+ A JSON object.
+
+
+
+
+ A JSON array.
+
+
+
+
+ A JSON constructor.
+
+
+
+
+ A JSON object property.
+
+
+
+
+ A comment.
+
+
+
+
+ An integer value.
+
+
+
+
+ A float value.
+
+
+
+
+ A string value.
+
+
+
+
+ A boolean value.
+
+
+
+
+ A null value.
+
+
+
+
+ An undefined value.
+
+
+
+
+ A date value.
+
+
+
+
+ A raw JSON value.
+
+
+
+
+ A collection of bytes value.
+
+
+
+
+ A Guid value.
+
+
+
+
+ A Uri value.
+
+
+
+
+ A TimeSpan value.
+
+
+
+
+ Represents a value in JSON (string, integer, date, etc).
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false .
+
+
+
+
+ Creates a comment with the given value.
+
+ The value.
+ A comment with the given value.
+
+
+
+ Creates a string with the given value.
+
+ The value.
+ A string with the given value.
+
+
+
+ Creates a null value.
+
+ A null value.
+
+
+
+ Creates a undefined value.
+
+ A undefined value.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets or sets the underlying token value.
+
+ The underlying token value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+
+ true if the current object is equal to the parameter; otherwise, false.
+
+ An object to compare with this object.
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+ The parameter is null.
+
+
+
+
+ Serves as a hash function for a particular type.
+
+
+ A hash code for the current .
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
+
+ An object to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
+ Value
+ Meaning
+ Less than zero
+ This instance is less than .
+ Zero
+ This instance is equal to .
+ Greater than zero
+ This instance is greater than .
+
+
+ is not the same type as this instance.
+
+
+
+
+ Specifies metadata property handling options for the .
+
+
+
+
+ Read metadata properties located at the start of a JSON object.
+
+
+
+
+ Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance.
+
+
+
+
+ Do not try to read metadata properties.
+
+
+
+
+ Represents a trace writer that writes to the application's instances.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of Info
will exclude Verbose
messages and include Info
,
+ Warning
and Error
messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides methods to get attributes.
+
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Represents a trace writer.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of Info
will exclude Verbose
messages and include Info
,
+ Warning
and Error
messages.
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the default collection items .
+
+ The converter.
+
+
+
+ Gets or sets a value indicating whether the collection items preserve object references.
+
+ true if collection items preserve object references; otherwise, false .
+
+
+
+ Gets or sets the collection item reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the collection item type name handling.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Represents a trace writer that writes to memory. When the trace message limit is
+ reached then old trace messages will be removed as new messages are added.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of Info
will exclude Verbose
messages and include Info
,
+ Warning
and Error
messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Returns an enumeration of the most recent trace messages.
+
+ An enumeration of the most recent trace messages.
+
+
+
+ Returns a of the most recent trace messages.
+
+
+ A of the most recent trace messages.
+
+
+
+
+ Provides methods to get attributes from a , , or .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to get attributes for. This parameter should be a , , or .
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the ISerializable object constructor.
+
+ The ISerializable object constructor.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Provides data for the Error event.
+
+
+
+
+ Gets the current object the error event is being raised against.
+
+ The current object the error event is being raised against.
+
+
+
+ Gets the error context.
+
+ The error context.
+
+
+
+ Initializes a new instance of the class.
+
+ The current object.
+ The error context.
+
+
+
+ Resolves member mappings for a type, camel casing property names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ The property name camel cased.
+
+
+
+ Used by to resolves a for a given .
+
+
+
+
+ Gets a value indicating whether members are being get and set using dynamic code generation.
+ This value is determined by the runtime permissions available.
+
+
+ true if using dynamic code generation; otherwise, false .
+
+
+
+
+ Gets or sets the default members search flags.
+
+ The default members search flags.
+
+
+
+ Gets or sets a value indicating whether compiler generated members should be serialized.
+
+
+ true if serialized compiler generated members; otherwise, false .
+
+
+
+
+ Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types.
+
+
+ true if the interface will be ignored when serializing and deserializing types; otherwise, false .
+
+
+
+
+ Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types.
+
+
+ true if the attribute will be ignored when serializing and deserializing types; otherwise, false .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ If set to true the will use a cached shared with other resolvers of the same type.
+ Sharing the cache will significantly improve performance with multiple resolver instances because expensive reflection will only
+ happen once. This setting can cause unexpected behavior if different instances of the resolver are suppose to produce different
+ results. When set to false it is highly recommended to reuse instances with the .
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Gets the serializable members for the type.
+
+ The type to get serializable members for.
+ The serializable members for the type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates the constructor parameters.
+
+ The constructor to create properties for.
+ The type's member properties.
+ Properties for the given .
+
+
+
+ Creates a for the given .
+
+ The matching member property.
+ The constructor parameter.
+ A created for the given .
+
+
+
+ Resolves the default for the contract.
+
+ Type of the object.
+ The contract's default .
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Determines which contract type is created for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates properties for the given .
+
+ The type to create properties for.
+ /// The member serialization mode for the type.
+ Properties for the given .
+
+
+
+ Creates the used by the serializer to get and set values from a member.
+
+ The member.
+ The used by the serializer to get and set values from a member.
+
+
+
+ Creates a for the given .
+
+ The member's parent .
+ The member to create a for.
+ A created for the given .
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ Resolved name of the property.
+
+
+
+ Resolves the key of the dictionary. By default is used to resolve dictionary keys.
+
+ Key of the dictionary.
+ Resolved key of the dictionary.
+
+
+
+ Gets the resolved name of the property.
+
+ Name of the property.
+ Name of the property.
+
+
+
+ The default serialization binder used when resolving and loading classes from type names.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+ The type of the object the formatter creates a new instance of.
+
+
+
+
+ Provides information surrounding an error.
+
+
+
+
+ Gets the error.
+
+ The error.
+
+
+
+ Gets the original object that caused the error.
+
+ The original object that caused the error.
+
+
+
+ Gets the member that caused the error.
+
+ The member that caused the error.
+
+
+
+ Gets the path of the JSON location where the error occurred.
+
+ The path of the JSON location where the error occurred.
+
+
+
+ Gets or sets a value indicating whether this is handled.
+
+ true if handled; otherwise, false .
+
+
+
+ Used by to resolves a for a given .
+
+
+
+
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Provides methods to get and set values.
+
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the of the collection items.
+
+ The of the collection items.
+
+
+
+ Gets a value indicating whether the collection type is a multidimensional array.
+
+ true if the collection type is a multidimensional array; otherwise, false .
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the collection values.
+
+ true if the creator has a parameter with the collection values; otherwise, false .
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Handles serialization callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+
+
+
+ Handles serialization error callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+ The error context.
+
+
+
+ Sets extension data for an object during deserialization.
+
+ The object to set extension data on.
+ The extension data key.
+ The extension data value.
+
+
+
+ Gets extension data for an object during serialization.
+
+ The object to set extension data on.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the underlying type for the contract.
+
+ The underlying type for the contract.
+
+
+
+ Gets or sets the type created during deserialization.
+
+ The type created during deserialization.
+
+
+
+ Gets or sets whether this type contract is serialized as a reference.
+
+ Whether this type contract is serialized as a reference.
+
+
+
+ Gets or sets the default for this contract.
+
+ The converter.
+
+
+
+ Gets or sets all methods called immediately after deserialization of the object.
+
+ The methods called immediately after deserialization of the object.
+
+
+
+ Gets or sets all methods called during deserialization of the object.
+
+ The methods called during deserialization of the object.
+
+
+
+ Gets or sets all methods called after serialization of the object graph.
+
+ The methods called after serialization of the object graph.
+
+
+
+ Gets or sets all methods called before serialization of the object.
+
+ The methods called before serialization of the object.
+
+
+
+ Gets or sets all method called when an error is thrown during the serialization of the object.
+
+ The methods called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the method called immediately after deserialization of the object.
+
+ The method called immediately after deserialization of the object.
+
+
+
+ Gets or sets the method called during deserialization of the object.
+
+ The method called during deserialization of the object.
+
+
+
+ Gets or sets the method called after serialization of the object graph.
+
+ The method called after serialization of the object graph.
+
+
+
+ Gets or sets the method called before serialization of the object.
+
+ The method called before serialization of the object.
+
+
+
+ Gets or sets the method called when an error is thrown during the serialization of the object.
+
+ The method called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the default creator method used to create the object.
+
+ The default creator method used to create the object.
+
+
+
+ Gets or sets a value indicating whether the default creator is non public.
+
+ true if the default object creator is non-public; otherwise, false .
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the property name resolver.
+
+ The property name resolver.
+
+
+
+ Gets or sets the dictionary key resolver.
+
+ The dictionary key resolver.
+
+
+
+ Gets the of the dictionary keys.
+
+ The of the dictionary keys.
+
+
+
+ Gets the of the dictionary values.
+
+ The of the dictionary values.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the dictionary values.
+
+ true if the creator has a parameter with the dictionary values; otherwise, false .
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Maps a JSON property to a .NET member or constructor parameter.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the type that declared this property.
+
+ The type that declared this property.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets the name of the underlying member or parameter.
+
+ The name of the underlying member or parameter.
+
+
+
+ Gets the that will get and set the during serialization.
+
+ The that will get and set the during serialization.
+
+
+
+ Gets or sets the for this property.
+
+ The for this property.
+
+
+
+ Gets or sets the type of the property.
+
+ The type of the property.
+
+
+
+ Gets or sets the for the property.
+ If set this converter takes presidence over the contract converter for the property type.
+
+ The converter.
+
+
+
+ Gets or sets the member converter.
+
+ The member converter.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false .
+
+
+
+ Gets or sets a value indicating whether this is readable.
+
+ true if readable; otherwise, false .
+
+
+
+ Gets or sets a value indicating whether this is writable.
+
+ true if writable; otherwise, false .
+
+
+
+ Gets or sets a value indicating whether this has a member attribute.
+
+ true if has a member attribute; otherwise, false .
+
+
+
+ Gets the default value.
+
+ The default value.
+
+
+
+ Gets or sets a value indicating whether this is required.
+
+ A value indicating whether this is required.
+
+
+
+ Gets or sets a value indicating whether this property preserves object references.
+
+
+ true if this instance is reference; otherwise, false .
+
+
+
+
+ Gets or sets the property null value handling.
+
+ The null value handling.
+
+
+
+ Gets or sets the property default value handling.
+
+ The default value handling.
+
+
+
+ Gets or sets the property reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the property object creation handling.
+
+ The object creation handling.
+
+
+
+ Gets or sets or sets the type name handling.
+
+ The type name handling.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialize.
+
+ A predicate used to determine whether the property should be serialize.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be deserialized.
+
+ A predicate used to determine whether the property should be deserialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets an action used to set whether the property has been deserialized.
+
+ An action used to set whether the property has been deserialized.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Gets or sets the the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets the the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ A collection of objects.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ When implemented in a derived class, extracts the key from the specified element.
+
+ The element from which to extract the key.
+ The key for the specified element.
+
+
+
+ Adds a object.
+
+ The property to add to the collection.
+
+
+
+ Gets the closest matching object.
+ First attempts to get an exact case match of propertyName and then
+ a case insensitive match.
+
+ Name of the property.
+ A matching property if found.
+
+
+
+ Gets a property by property name.
+
+ The name of the property to get.
+ Type property name string comparison.
+ A matching property if found.
+
+
+
+ Used to resolve references when serializing and deserializing JSON by the .
+
+
+
+
+ Resolves a reference to its object.
+
+ The serialization context.
+ The reference to resolve.
+ The object that
+
+
+
+ Gets the reference for the sepecified object.
+
+ The serialization context.
+ The object to get a reference for.
+ The reference to the object.
+
+
+
+ Determines whether the specified object is referenced.
+
+ The serialization context.
+ The object to test for a reference.
+
+ true if the specified object is referenced; otherwise, false .
+
+
+
+
+ Adds a reference to the specified object.
+
+ The serialization context.
+ The reference.
+ The object to reference.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object member serialization.
+
+ The member object serialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets the constructor parameters required for any non-default constructor
+
+
+
+
+ Gets a collection of instances that define the parameters used with .
+
+
+
+
+ Gets or sets the override constructor used to create the object.
+ This is set when a constructor is marked up using the
+ JsonConstructor attribute.
+
+ The override constructor.
+
+
+
+ Gets or sets the parametrized constructor used to create the object.
+
+ The parametrized constructor.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+ This function is called with a collection of arguments which are defined by the collection.
+
+ The function used to create the object.
+
+
+
+ Gets or sets the extension data setter.
+
+
+
+
+ Gets or sets the extension data getter.
+
+
+
+
+ Gets or sets the extension data value type.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Lookup and create an instance of the JsonConverter type described by the argument.
+
+ The JsonConverter type to create.
+ Optional arguments to pass to an initializing constructor of the JsonConverter.
+ If null, the default constructor is used.
+
+
+
+ Create a factory function that can be used to create instances of a JsonConverter described by the
+ argument type. The returned function can then be used to either invoke the converter's default ctor, or any
+ parameterized constructors by way of an object array.
+
+
+
+
+ Get and set values for a using reflection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ When applied to a method, specifies that the method is called when an error occurs serializing an object.
+
+
+
+
+ Represents a method that constructs an object.
+
+ The object type to create.
+
+
+
+ Specifies how strings are escaped when writing JSON text.
+
+
+
+
+ Only control characters (e.g. newline) are escaped.
+
+
+
+
+ All non-ASCII and control characters (e.g. newline) are escaped.
+
+
+
+
+ HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped.
+
+
+
+
+ Converts the value to the specified type. If the value is unable to be converted, the
+ value is checked whether it assignable to the specified type.
+
+ The value to convert.
+ The culture to use when converting.
+ The type to convert or cast the value to.
+
+ The converted type. If conversion was unsuccessful, the initial value
+ is returned if assignable to the target type.
+
+
+
+
+ Gets a dictionary of the names and values of an Enum type.
+
+
+
+
+
+ Gets a dictionary of the names and values of an Enum type.
+
+ The enum type to get names and values for.
+
+
+
+
+ Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer.
+
+
+
+
+ Determines whether the collection is null or empty.
+
+ The collection.
+
+ true if the collection is null or empty; otherwise, false .
+
+
+
+
+ Adds the elements of the specified collection to the specified generic IList.
+
+ The list to add to.
+ The collection of elements to add.
+
+
+
+ Gets the type of the typed collection's items.
+
+ The type.
+ The type of the typed collection's items.
+
+
+
+ Gets the member's underlying type.
+
+ The member.
+ The underlying type of the member.
+
+
+
+ Determines whether the member is an indexed property.
+
+ The member.
+
+ true if the member is an indexed property; otherwise, false .
+
+
+
+
+ Determines whether the property is an indexed property.
+
+ The property.
+
+ true if the property is an indexed property; otherwise, false .
+
+
+
+
+ Gets the member's value on the object.
+
+ The member.
+ The target object.
+ The member's value on the object.
+
+
+
+ Sets the member's value on the target object.
+
+ The member.
+ The target.
+ The value.
+
+
+
+ Determines whether the specified MemberInfo can be read.
+
+ The MemberInfo to determine whether can be read.
+ /// if set to true then allow the member to be gotten non-publicly.
+
+ true if the specified MemberInfo can be read; otherwise, false .
+
+
+
+
+ Determines whether the specified MemberInfo can be set.
+
+ The MemberInfo to determine whether can be set.
+ if set to true then allow the member to be set non-publicly.
+ if set to true then allow the member to be set if read-only.
+
+ true if the specified MemberInfo can be set; otherwise, false .
+
+
+
+
+ Determines whether the string is all white space. Empty string will return false.
+
+ The string to test whether it is all white space.
+
+ true if the string is all white space; otherwise, false .
+
+
+
+
+ Nulls an empty string.
+
+ The string.
+ Null if the string was null, otherwise the string unchanged.
+
+
+
+ Indicating whether a property is required.
+
+
+
+
+ The property is not required. The default state.
+
+
+
+
+ The property must be defined in JSON but can be a null value.
+
+
+
+
+ The property must be defined in JSON and cannot be a null value.
+
+
+
+
+ The property is not required but it cannot be a null value.
+
+
+
+
+ Specifies reference handling options for the .
+ Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement ISerializable.
+
+
+
+
+
+
+
+ Do not preserve references when serializing types.
+
+
+
+
+ Preserve references when serializing into a JSON object structure.
+
+
+
+
+ Preserve references when serializing into a JSON array structure.
+
+
+
+
+ Preserve references when serializing.
+
+
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if LineNumber and LinePosition can be provided; otherwise, false .
+
+
+
+
+ Gets the current line number.
+
+ The current line number or 0 if no line information is available (for example, HasLineInfo returns false).
+
+
+
+ Gets the current line position.
+
+ The current line position or 0 if no line information is available (for example, HasLineInfo returns false).
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Gets or sets a value indicating whether null items are allowed in the collection.
+
+ true if null items are allowed in the collection; otherwise, false .
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a flag indicating whether the array can contain null items
+
+ A flag indicating whether the array can contain null items.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the id.
+
+ The id.
+
+
+
+ Gets or sets the title.
+
+ The title.
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets the collection's items converter.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the JsonConverter described by ItemConverterType.
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number,
+ order, and type of these parameters.
+
+
+ [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+ Gets or sets a value that indicates whether to preserve object references.
+
+
+ true to keep object reference; otherwise, false . The default is false .
+
+
+
+
+ Gets or sets a value that indicates whether to preserve collection's items references.
+
+
+ true to keep collection's items object references; otherwise, false . The default is false .
+
+
+
+
+ Gets or sets the reference loop handling used when serializing the collection's items.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the collection's items.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Specifies default value handling options for the .
+
+
+
+
+
+
+
+
+ Include members where the member value is the same as the member's default value when serializing objects.
+ Included members are written to JSON. Has no effect when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ so that is is not written to JSON.
+ This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers,
+ decimals and floating point numbers; and false for booleans). The default value ignored can be changed by
+ placing the on the property.
+
+
+
+
+ Members with a default value but no JSON will be set to their default value when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ and sets members to their default value when deserializing.
+
+
+
+
+ Instructs the to use the specified when serializing the member or class.
+
+
+
+
+ Gets the of the converter.
+
+ The of the converter.
+
+
+
+ The parameter list to use when constructing the JsonConverter described by ConverterType.
+ If null, the default constructor is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the converter.
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the converter.
+ Parameter list to use when constructing the JsonConverter. Can be null.
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the member serialization.
+
+ The member serialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified member serialization.
+
+ The member serialization.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Specifies the settings on a object.
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) is handled.
+
+ Reference loop handling.
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+
+ Missing member handling.
+
+
+
+ Gets or sets how objects are created during deserialization.
+
+ The object creation handling.
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+
+ Null value handling.
+
+
+
+ Gets or sets how null default are handled during serialization and deserialization.
+
+ The default value handling.
+
+
+
+ Gets or sets a collection that will be used during serialization.
+
+ The converters.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+
+ The preserve references handling.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than TypeNameHandling.None .
+
+ The type name handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+
+ The metadata properties handling.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+
+ The type name assembly format.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+
+ The constructor handling.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+ The contract resolver.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+ The reference resolver.
+
+
+
+ Gets or sets a function that creates the used by the serializer when resolving references.
+
+ A function that creates the used by the serializer when resolving references.
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the error handler called during serialization and deserialization.
+
+ The error handler called during serialization and deserialization.
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Indicates how JSON text output is formatted.
+
+
+
+
+ Get or set how dates are written to JSON text.
+
+
+
+
+ Get or set how time zones are handling during serialization and deserialization.
+
+
+
+
+ Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Get or set how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON.
+
+
+
+
+ Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Get or set how strings are escaped when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional content after deserializing an object.
+
+
+ true if there will be a check for additional content after deserializing an object; otherwise, false .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Specifies the member serialization options for the .
+
+
+
+
+ All public members are serialized by default. Members can be excluded using or .
+ This is the default member serialization mode.
+
+
+
+
+ Only members marked with or are serialized.
+ This member serialization mode can also be set by marking the class with .
+
+
+
+
+ All public and private fields are serialized. Members can be excluded using or .
+ This member serialization mode can also be set by marking the class with
+ and setting IgnoreSerializableAttribute on to false.
+
+
+
+
+ Specifies how object creation is handled by the .
+
+
+
+
+ Reuse existing objects, create new objects when needed.
+
+
+
+
+ Only reuse existing objects.
+
+
+
+
+ Always create new objects.
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to JSON text data.
+
+
+
+
+ Initializes a new instance of the class with the specified .
+
+ The TextReader containing the XML data to read.
+
+
+
+ Gets or sets the reader's character buffer pool.
+
+
+
+
+ Reads the next JSON token from the stream.
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a [].
+
+ A [] or a null reference if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Changes the state to closed.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if LineNumber and LinePosition can be provided; otherwise, false .
+
+
+
+
+ Gets the current line number.
+
+
+ The current line number or 0 if no line information is available (for example, HasLineInfo returns false).
+
+
+
+
+ Gets the current line position.
+
+
+ The current line position or 0 if no line information is available (for example, HasLineInfo returns false).
+
+
+
+
+ Instructs the to always serialize the member with the specified name.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the JsonConverter described by ItemConverterType.
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number,
+ order, and type of these parameters.
+
+
+ [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+ Gets or sets the null value handling used when serializing this property.
+
+ The null value handling.
+
+
+
+ Gets or sets the default value handling used when serializing this property.
+
+ The default value handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing this property.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the object creation handling used when deserializing this property.
+
+ The object creation handling.
+
+
+
+ Gets or sets the type name handling used when serializing this property.
+
+ The type name handling.
+
+
+
+ Gets or sets whether this property's value is serialized as a reference.
+
+ Whether this property's value is serialized as a reference.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets a value indicating whether this property is required.
+
+
+ A value indicating whether this property is required.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ Gets or sets the the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ Name of the property.
+
+
+
+ Instructs the not to serialize the public field or public read/write property value.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets or sets the writer's character array pool.
+
+
+
+
+ Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented .
+
+
+
+
+ Gets or sets which character to use to quote attribute values.
+
+
+
+
+ Gets or sets which character to use for indenting when is set to Formatting.Indented .
+
+
+
+
+ Gets or sets a value indicating whether object names will be surrounded with quotes.
+
+
+
+
+ Creates an instance of the JsonWriter class using the specified .
+
+ The TextWriter to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
+
+
+
+
+ Closes this stream and the underlying stream.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes out a comment /*...*/
containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes out the given white space.
+
+ The string of white space characters.
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Converts an object to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Gets a value indicating whether this can read JSON.
+
+ true if this can read JSON; otherwise, false .
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+ true if this can write JSON; otherwise, false .
+
+
+
+ Represents a collection of .
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Specifies the state of the reader.
+
+
+
+
+ The Read method has not been called.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Reader is at a property.
+
+
+
+
+ Reader is at the start of an object.
+
+
+
+
+ Reader is in an object.
+
+
+
+
+ Reader is at the start of an array.
+
+
+
+
+ Reader is in an array.
+
+
+
+
+ The Close method has been called.
+
+
+
+
+ Reader has just read a value.
+
+
+
+
+ Reader is at the start of a constructor.
+
+
+
+
+ Reader in a constructor.
+
+
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Gets the current reader state.
+
+ The current reader state.
+
+
+
+ Gets or sets a value indicating whether the underlying stream or
+ should be closed when the reader is closed.
+
+
+ true to close the underlying stream or when
+ the reader is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether multiple pieces of JSON content can
+ be read from a continuous stream without erroring.
+
+
+ true to support reading multiple pieces of JSON content; otherwise false. The default is false.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+ Get or set how time zones are handling when reading JSON.
+
+
+
+
+ Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Get or set how custom date formatted strings are parsed when reading JSON.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+ Gets The Common Language Runtime (CLR) type for the current JSON token.
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class with the specified .
+
+
+
+
+ Reads the next JSON token from the stream.
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a [].
+
+ A [] or a null reference if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Skips the children of the current token.
+
+
+
+
+ Sets the current token.
+
+ The new token.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+
+
+
+ Sets the state based on current token type.
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Changes the to Closed.
+
+
+
+
+ Provides methods for converting between common language runtime types and JSON types.
+
+
+
+
+
+
+
+ Gets or sets a function that creates default .
+ Default settings are automatically used by serialization methods on ,
+ and and on .
+ To serialize without using any default settings create a with
+ .
+
+
+
+
+ Represents JavaScript's boolean value true as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's boolean value false as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's null as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's undefined as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's positive infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's negative infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's NaN as a string. This field is read-only.
+
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ The time zone handling when the date is converted to a string.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ The string escape handling.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Serializes the specified object to a JSON string.
+
+ The object to serialize.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting.
+
+ The object to serialize.
+ Indicates how the output is formatted.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a collection of .
+
+ The object to serialize.
+ A collection converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting and a collection of .
+
+ The object to serialize.
+ Indicates how the output is formatted.
+ A collection converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifing the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using formatting and .
+
+ The object to serialize.
+ Indicates how the output is formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ Indicates how the output is formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifing the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Deserializes the JSON to a .NET object.
+
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to a .NET object using .
+
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The JSON to deserialize.
+ The of object being deserialized.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type.
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be infered from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type using .
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be infered from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The type of the object to deserialize to.
+ The object to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The JSON to deserialize.
+ The type of the object to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Populates the object with values from the JSON string.
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+
+
+ Populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+
+
+ Serializes the XML node to a JSON string.
+
+ The node to serialize.
+ A JSON string of the XmlNode.
+
+
+
+ Serializes the XML node to a JSON string using formatting.
+
+ The node to serialize.
+ Indicates how the output is formatted.
+ A JSON string of the XmlNode.
+
+
+
+ Serializes the XML node to a JSON string using formatting and omits the root object if is true .
+
+ The node to serialize.
+ Indicates how the output is formatted.
+ Omits writing the root object.
+ A JSON string of the XmlNode.
+
+
+
+ Deserializes the XmlNode from a JSON string.
+
+ The JSON string.
+ The deserialized XmlNode
+
+
+
+ Deserializes the XmlNode from a JSON string nested in a root elment specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized XmlNode
+
+
+
+ Deserializes the XmlNode from a JSON string nested in a root elment specified by
+ and writes a .NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized XmlNode
+
+
+
+ Serializes the to a JSON string.
+
+ The node to convert to JSON.
+ A JSON string of the XNode.
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to convert to JSON.
+ Indicates how the output is formatted.
+ A JSON string of the XNode.
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true .
+
+ The node to serialize.
+ Indicates how the output is formatted.
+ Omits writing the root object.
+ A JSON string of the XNode.
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized XNode
+
+
+
+ Deserializes the from a JSON string nested in a root elment specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized XNode
+
+
+
+ Deserializes the from a JSON string nested in a root elment specified by
+ and writes a .NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized XNode
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Serializes and deserializes objects into and from the JSON format.
+ The enables you to control how objects are encoded into JSON.
+
+
+
+
+ Occurs when the errors during serialization and deserialization.
+
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than TypeNameHandling.None .
+
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+
+ The type name assembly format.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+
+
+
+
+ Get or set how reference loops (e.g. a class referencing itself) is handled.
+
+
+
+
+ Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+
+
+
+
+ Get or set how null values are handled during serialization and deserialization.
+
+
+
+
+ Get or set how null default are handled during serialization and deserialization.
+
+
+
+
+ Gets or sets how objects are created during deserialization.
+
+ The object creation handling.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+
+ The constructor handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+
+ The metadata properties handling.
+
+
+
+ Gets a collection that will be used during serialization.
+
+ Collection that will be used during serialization.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Indicates how JSON text output is formatted.
+
+
+
+
+ Get or set how dates are written to JSON text.
+
+
+
+
+ Get or set how time zones are handling during serialization and deserialization.
+
+
+
+
+ Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Get or set how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON text.
+
+
+
+
+ Get or set how strings are escaped when writing JSON text.
+
+
+
+
+ Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional JSON content after deserializing an object.
+
+
+ true if there will be a check for additional JSON content after deserializing an object; otherwise, false .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance.
+ The will not use default settings
+ from .
+
+
+ A new instance.
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will not use default settings
+ from .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance.
+ The will use default settings
+ from .
+
+
+ A new instance.
+ The will use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Deserializes the JSON structure contained by the specified .
+
+ The that contains the JSON structure to deserialize.
+ The being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The type of the object to deserialize.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Serializes the specified and writes the JSON structure
+ to a Stream using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Serializes the specified and writes the JSON structure
+ to a Stream using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifing the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ to a Stream using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifing the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ to a Stream using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Specifies missing member handling options for the .
+
+
+
+
+ Ignore a missing member and do not attempt to deserialize it.
+
+
+
+
+ Throw a when a missing member is encountered during deserialization.
+
+
+
+
+ Specifies null value handling options for the .
+
+
+
+
+
+
+
+
+ Include null values when serializing and deserializing objects.
+
+
+
+
+ Ignore null values when serializing and deserializing objects.
+
+
+
+
+ Specifies reference loop handling options for the .
+
+
+
+
+ Throw a when a loop is encountered.
+
+
+
+
+ Ignore loop references and do not serialize.
+
+
+
+
+ Serialize loop references.
+
+
+
+
+ Specifies type name handling options for the .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than TypeNameHandling.None .
+
+
+
+
+ Do not include the .NET type name when serializing types.
+
+
+
+
+ Include the .NET type name when serializing into a JSON object structure.
+
+
+
+
+ Include the .NET type name when serializing into a JSON array structure.
+
+
+
+
+ Always include the .NET type name when serializing.
+
+
+
+
+ Include the .NET type name when the type of the object being serialized is not the same as its declared type.
+
+
+
+
+ Specifies the type of JSON token.
+
+
+
+
+ This is returned by the if a method has not been called.
+
+
+
+
+ An object start token.
+
+
+
+
+ An array start token.
+
+
+
+
+ A constructor start token.
+
+
+
+
+ An object property name.
+
+
+
+
+ A comment.
+
+
+
+
+ Raw JSON.
+
+
+
+
+ An integer.
+
+
+
+
+ A float.
+
+
+
+
+ A string.
+
+
+
+
+ A boolean.
+
+
+
+
+ A null token.
+
+
+
+
+ An undefined token.
+
+
+
+
+ An object end token.
+
+
+
+
+ An array end token.
+
+
+
+
+ A constructor end token.
+
+
+
+
+ A Date.
+
+
+
+
+ Byte data.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets or sets a value indicating whether the underlying stream or
+ should be closed when the writer is closed.
+
+
+ true to close the underlying stream or when
+ the writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets the top.
+
+ The top.
+
+
+
+ Gets the state of the writer.
+
+
+
+
+ Gets the path of the writer.
+
+
+
+
+ Indicates how JSON text output is formatted.
+
+
+
+
+ Get or set how dates are written to JSON text.
+
+
+
+
+ Get or set how time zones are handling when writing JSON text.
+
+
+
+
+ Get or set how strings are escaped when writing JSON text.
+
+
+
+
+ Get or set how special floating point numbers, e.g. ,
+ and ,
+ are written to JSON text.
+
+
+
+
+ Get or set how and values are formatting when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when writing JSON. Defaults to .
+
+
+
+
+ Creates an instance of the JsonWriter class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
+
+
+
+
+ Closes this stream and the underlying stream.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the end of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the end of an array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end constructor.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes the end of the current JSON object or array.
+
+
+
+
+ Writes the current token and its children.
+
+ The to read the token from.
+
+
+
+ Writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+
+
+
+ Writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ A null value can be passed to the method for token's that don't have a value, e.g. .
+
+
+
+ Writes the token.
+
+ The to write.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes out a comment /*...*/
containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes out the given white space.
+
+ The string of white space characters.
+
+
+
+ Releases unmanaged and - optionally - managed resources
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Sets the state of the JsonWriter,
+
+ The JsonToken being written.
+ The value being written.
+
+
+
+ Specifies the state of the .
+
+
+
+
+ An exception has been thrown, which has left the in an invalid state.
+ You may call the method to put the in the Closed state.
+ Any other method calls results in an being thrown.
+
+
+
+
+ The method has been called.
+
+
+
+
+ An object is being written.
+
+
+
+
+ A array is being written.
+
+
+
+
+ A constructor is being written.
+
+
+
+
+ A property is being written.
+
+
+
+
+ A write method has not been called.
+
+
+
+
diff --git a/Assets/JsonDotNet/Assemblies/AOT/Newtonsoft.Json.XML.meta b/Assets/JsonDotNet/Assemblies/AOT/Newtonsoft.Json.XML.meta
new file mode 100644
index 0000000..0e2097f
--- /dev/null
+++ b/Assets/JsonDotNet/Assemblies/AOT/Newtonsoft.Json.XML.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: aadad8ac54f29e44583510294ac5c312
+timeCreated: 1466788355
+licenseType: Store
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/JsonDotNet/Assemblies/AOT/Newtonsoft.Json.dll b/Assets/JsonDotNet/Assemblies/AOT/Newtonsoft.Json.dll
new file mode 100644
index 0000000..3d09325
Binary files /dev/null and b/Assets/JsonDotNet/Assemblies/AOT/Newtonsoft.Json.dll differ
diff --git a/Assets/JsonDotNet/Assemblies/AOT/Newtonsoft.Json.dll.meta b/Assets/JsonDotNet/Assemblies/AOT/Newtonsoft.Json.dll.meta
new file mode 100644
index 0000000..ea21e1f
--- /dev/null
+++ b/Assets/JsonDotNet/Assemblies/AOT/Newtonsoft.Json.dll.meta
@@ -0,0 +1,76 @@
+fileFormatVersion: 2
+guid: 6a3c684705042f345975d924f6983e36
+timeCreated: 1466788352
+licenseType: Store
+PluginImporter:
+ serializedVersion: 1
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ platformData:
+ Android:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ Any:
+ enabled: 0
+ settings: {}
+ Editor:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ DefaultValueInitialized: true
+ OS: AnyOS
+ Linux:
+ enabled: 0
+ settings:
+ CPU: x86
+ Linux64:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ OSXIntel:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ OSXIntel64:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ SamsungTV:
+ enabled: 1
+ settings:
+ STV_MODEL: STANDARD_13
+ Tizen:
+ enabled: 1
+ settings: {}
+ WebGL:
+ enabled: 1
+ settings: {}
+ Win:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ Win64:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ WindowsStoreApps:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ DontProcess: False
+ PlaceholderPath: Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.dll
+ SDK: AnySDK
+ ScriptingBackend: Il2Cpp
+ iOS:
+ enabled: 1
+ settings:
+ CompileFlags:
+ FrameworkDependencies:
+ tvOS:
+ enabled: 1
+ settings: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/JsonDotNet/Assemblies/Standalone.meta b/Assets/JsonDotNet/Assemblies/Standalone.meta
new file mode 100644
index 0000000..242f110
--- /dev/null
+++ b/Assets/JsonDotNet/Assemblies/Standalone.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 01ef782d02bb1994dbe418b69432552b
+folderAsset: yes
+timeCreated: 1466788344
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.XML b/Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.XML
new file mode 100644
index 0000000..f5a5a04
--- /dev/null
+++ b/Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.XML
@@ -0,0 +1,8040 @@
+
+
+
+ Newtonsoft.Json
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary.
+
+
+ true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false .
+
+
+
+
+ Gets or sets a value indicating whether the root object will be read as a JSON array.
+
+
+ true if the root object will be read as a JSON array; otherwise, false .
+
+
+
+
+ Gets or sets the used when reading values from BSON.
+
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The stream.
+
+
+
+ Initializes a new instance of the class.
+
+ The reader.
+
+
+
+ Initializes a new instance of the class.
+
+ The stream.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The reader.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Reads the next JSON token from the stream.
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Changes the to Closed.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets or sets the used when writing values to BSON.
+ When set to no conversion will occur.
+
+ The used when writing values to BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The stream.
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
+
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes out a comment /*...*/
containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Closes this stream and the underlying stream.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value that represents a BSON object id.
+
+ The Object ID value to write.
+
+
+
+ Writes a BSON regex.
+
+ The regex pattern.
+ The regex options.
+
+
+
+ Represents a BSON Oid (object id).
+
+
+
+
+ Gets or sets the value of the Oid.
+
+ The value of the Oid.
+
+
+
+ Initializes a new instance of the class.
+
+ The Oid value.
+
+
+
+ Converts a binary value to and from a base 64 string value.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Create a custom object
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Creates an object which will then be populated by the serializer.
+
+ Type of the object.
+ The created object.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false .
+
+
+
+
+ Provides a base class for converting a to and from JSON.
+
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Converts an to and from its name string value.
+
+
+
+
+ Gets or sets a value indicating whether the written enum text should be camel case.
+
+ true if the written enum text will be camel case; otherwise, false .
+
+
+
+ Gets or sets a value indicating whether integer values are allowed.
+
+ true if integers are allowed; otherwise, false .
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the written enum text will be camel case; otherwise, false .
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Json Converter for Vector2, Vector3 and Vector4. Only serializes x, y, (z) and (w) properties.
+
+
+
+
+ Default Constructor - All Vector types enabled by default
+
+
+
+
+ Selectively enable Vector types
+
+ Use for Vector2 objects
+ Use for Vector3 objects
+ Use for Vector4 objects
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Converts a to and from a string (e.g. "1.2.3.4").
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z).
+
+
+
+
+ Gets or sets the date time styles used when converting a date to and from JSON.
+
+ The date time styles used when converting a date to and from JSON.
+
+
+
+ Gets or sets the date time format used when converting a date to and from JSON.
+
+ The date time format used when converting a date to and from JSON.
+
+
+
+ Gets or sets the culture used when converting a date to and from JSON.
+
+ The culture used when converting a date to and from JSON.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)).
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts XML to and from JSON.
+
+
+
+
+ Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements.
+
+ The name of the deserialize root element.
+
+
+
+ Gets or sets a flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ true if the array attibute is written to the XML; otherwise, false .
+
+
+
+ Gets or sets a value indicating whether to write the root JSON object.
+
+ true if the JSON root object is omitted; otherwise, false .
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The calling serializer.
+ The value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Checks if the attributeName is a namespace attribute.
+
+ Attribute name to test.
+ The attribute name prefix if it has one, otherwise an empty string.
+ True if attribute name is for a namespace attribute, otherwise false.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false .
+
+
+
+
+ Specifies how constructors are used when initializing objects during deserialization by the .
+
+
+
+
+ First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor.
+
+
+
+
+ Json.NET will use a non-public default constructor before falling back to a paramatized constructor.
+
+
+
+
+ Specifies how dates are formatted when writing JSON text.
+
+
+
+
+ Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z".
+
+
+
+
+ Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/".
+
+
+
+
+ Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text.
+
+
+
+
+ Date formatted strings are not parsed to a date type and are read as strings.
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+
+
+ Treat as a local time if a is being converted to a string.
+ If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+
+
+ Time zone information should be preserved when converting.
+
+
+
+
+ Specifies float format handling options when writing special floating point numbers, e.g. ,
+ and with .
+
+
+
+
+ Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity".
+
+
+
+
+ Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity.
+ Note that this will produce non-valid JSON.
+
+
+
+
+ Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a property.
+
+
+
+
+ Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Specifies formatting options for the .
+
+
+
+
+ No special formatting is applied. This is the default.
+
+
+
+
+ Causes child objects to be indented according to the and settings.
+
+
+
+
+ Provides an interface for using pooled arrays.
+
+ The array type content.
+
+
+
+ Rent a array from the pool. This array must be returned when it is no longer needed.
+
+ The minimum required length of the array. The returned array may be longer.
+ The rented array from the pool. This array must be returned when it is no longer needed.
+
+
+
+ Return an array to the pool.
+
+ The array that is being returned.
+
+
+
+ Instructs the to use the specified constructor when deserializing that object.
+
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Instructs the to deserialize properties with no matching class member into the specified collection
+ and write values during serialization.
+
+
+
+
+ Gets or sets a value that indicates whether to write extension data when serializing the object.
+
+
+ true to write extension data when serializing the object; otherwise, false . The default is true .
+
+
+
+
+ Gets or sets a value that indicates whether to read extension data when deserializing the object.
+
+
+ true to read extension data when deserializing the object; otherwise, false . The default is true .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Instructs the to always serialize the member, and require the member has a value.
+
+
+
+
+ Specifies how JSON comments are handled when loading JSON.
+
+
+
+
+ Ignore comments.
+
+
+
+
+ Load comments as a with type .
+
+
+
+
+ Specifies how line information is handled when loading JSON.
+
+
+
+
+ Ignore line information.
+
+
+
+
+ Load line information.
+
+
+
+
+ Represents a view of a .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+
+
+
+ When overridden in a derived class, returns whether resetting an object changes its value.
+
+
+ true if resetting the component changes its value; otherwise, false.
+
+ The component to test for reset capability.
+
+
+
+
+ When overridden in a derived class, gets the current value of the property on a component.
+
+
+ The value of a property for a given component.
+
+ The component with the property for which to retrieve the value.
+
+
+
+
+ When overridden in a derived class, resets the value for this property of the component to the default value.
+
+ The component with the property value that is to be reset to the default value.
+
+
+
+
+ When overridden in a derived class, sets the value of the component to a different value.
+
+ The component with the property value that is to be set.
+ The new value.
+
+
+
+
+ When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted.
+
+
+ true if the property should be persisted; otherwise, false.
+
+ The component with the property to be examined for persistence.
+
+
+
+
+ When overridden in a derived class, gets the type of the component this property is bound to.
+
+
+ A that represents the type of component this property is bound to. When the or methods are invoked, the object specified might be an instance of this type.
+
+
+
+
+ When overridden in a derived class, gets a value indicating whether this property is read-only.
+
+
+ true if the property is read-only; otherwise, false.
+
+
+
+
+ When overridden in a derived class, gets the type of the property.
+
+
+ A that represents the type of the property.
+
+
+
+
+ Gets the hash code for the name of the member.
+
+
+
+ The hash code for the name of the member.
+
+
+
+
+ Specifies the settings used when loading JSON.
+
+
+
+
+ Gets or sets how JSON comments are handled when loading JSON.
+
+ The JSON comment handling.
+
+
+
+ Gets or sets how JSON line info is handled when loading JSON.
+
+ The JSON line info handling.
+
+
+
+ Specifies the settings used when merging JSON.
+
+
+
+
+ Gets or sets the method used when merging JSON arrays.
+
+ The method used when merging JSON arrays.
+
+
+
+ Gets or sets how how null value properties are merged.
+
+ How null value properties are merged.
+
+
+
+ Specifies how JSON arrays are merged together.
+
+
+
+ Concatenate arrays.
+
+
+ Union arrays, skipping items that already exist.
+
+
+ Replace all array items.
+
+
+ Merge array items together, matched by index.
+
+
+
+ Specifies how null value properties are merged.
+
+
+
+
+ The content's null value properties will be ignored during merging.
+
+
+
+
+ The content's null value properties will be merged.
+
+
+
+
+ Represents a raw JSON string.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class.
+
+ The raw json.
+
+
+
+ Creates an instance of with the content of the reader's current token.
+
+ The reader.
+ An instance of with the content of the reader's current token.
+
+
+
+ Represents a collection of objects.
+
+ The type of token
+
+
+
+ Gets the with the specified key.
+
+
+
+
+
+ Compares tokens to determine whether they are equal.
+
+
+
+
+ Determines whether the specified objects are equal.
+
+ The first object of type to compare.
+ The second object of type to compare.
+
+ true if the specified objects are equal; otherwise, false.
+
+
+
+
+ Returns a hash code for the specified object.
+
+ The for which a hash code is to be returned.
+ A hash code for the specified object.
+ The type of is a reference type and is null.
+
+
+
+ Contains the LINQ to JSON extension methods.
+
+
+
+
+ Returns a collection of tokens that contains the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the descendants of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, and the descendants of every token in the source collection.
+
+
+
+ Returns a collection of child properties of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the properties of every object in the source collection.
+
+
+
+ Returns a collection of child values of every object in the source collection with the given key.
+
+ An of that contains the source collection.
+ The token key.
+ An of that contains the values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of child values of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child values of every object in the source collection with the given key.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ The token key.
+ An that contains the converted values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of converted child values of every object in the source collection.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Converts the value.
+
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Converts the value.
+
+ The source collection type.
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Returns a collection of child tokens of every array in the source collection.
+
+ The source collection type.
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child tokens of every array in the source collection.
+
+ An of that contains the source collection.
+ The type to convert the values to.
+ The source collection type.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Returns the input typed as .
+
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Returns the input typed as .
+
+ The source collection type.
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Represents a JSON constructor.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets or sets the name of this constructor.
+
+ The constructor name.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ The constructor name.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a token that can contain other tokens.
+
+
+
+
+ Occurs when the list changes or an item in the list changes.
+
+
+
+
+ Occurs before an item is added to the collection.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false .
+
+
+
+
+ Get the first child token of this token.
+
+
+ A containing the first child token of the .
+
+
+
+
+ Get the last child token of this token.
+
+
+ A containing the last child token of the .
+
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+
+ An of containing the child tokens of this , in document order.
+
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+
+ A containing the child values of this , in document order.
+
+
+
+
+ Returns a collection of the descendant tokens for this token in document order.
+
+ An containing the descendant tokens of the .
+
+
+
+ Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.
+
+ An containing this token, and all the descendant tokens of the .
+
+
+
+ Adds the specified content as children of this .
+
+ The content to be added.
+
+
+
+ Adds the specified content as the first children of this .
+
+ The content to be added.
+
+
+
+ Creates an that can be used to add tokens to the .
+
+ An that is ready to have content written to it.
+
+
+
+ Replaces the children nodes of this token with the specified content.
+
+ The content.
+
+
+
+ Removes the child nodes from this token.
+
+
+
+
+ Merge the specified content into this .
+
+ The content to be merged.
+
+
+
+ Merge the specified content into this using .
+
+ The content to be merged.
+ The used to merge the content.
+
+
+
+ Gets the count of child JSON tokens.
+
+ The count of child JSON tokens
+
+
+
+ Represents a collection of objects.
+
+ The type of token
+
+
+
+ An empty collection of objects.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The enumerable.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Gets the with the specified key.
+
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false .
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false .
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Represents a JSON object.
+
+
+
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Occurs when a property value is changing.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets an of this object's properties.
+
+ An of this object's properties.
+
+
+
+ Gets a the specified name.
+
+ The property name.
+ A with the specified name or null.
+
+
+
+ Gets an of this object's property values.
+
+ An of this object's property values.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the with the specified property name.
+
+
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified property name.
+
+ Name of the property.
+ The with the specified property name.
+
+
+
+ Gets the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ One of the enumeration values that specifies how the strings will be compared.
+ The with the specified property name.
+
+
+
+ Tries to get the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ The value.
+ One of the enumeration values that specifies how the strings will be compared.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Adds the specified property name.
+
+ Name of the property.
+ The value.
+
+
+
+ Removes the property with the specified name.
+
+ Name of the property.
+ true if item was successfully removed; otherwise, false.
+
+
+
+ Tries the get value.
+
+ Name of the property.
+ The value.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Returns the properties for this instance of a component.
+
+
+ A that represents the properties for this component instance.
+
+
+
+
+ Returns the properties for this instance of a component using the attribute array as a filter.
+
+ An array of type that is used as a filter.
+
+ A that represents the filtered properties for this component instance.
+
+
+
+
+ Returns a collection of custom attributes for this instance of a component.
+
+
+ An containing the attributes for this object.
+
+
+
+
+ Returns the class name of this instance of a component.
+
+
+ The class name of the object, or null if the class does not have a name.
+
+
+
+
+ Returns the name of this instance of a component.
+
+
+ The name of the object, or null if the object does not have a name.
+
+
+
+
+ Returns a type converter for this instance of a component.
+
+
+ A that is the converter for this object, or null if there is no for this object.
+
+
+
+
+ Returns the default event for this instance of a component.
+
+
+ An that represents the default event for this object, or null if this object does not have events.
+
+
+
+
+ Returns the default property for this instance of a component.
+
+
+ A that represents the default property for this object, or null if this object does not have properties.
+
+
+
+
+ Returns an editor of the specified type for this instance of a component.
+
+ A that represents the editor for this object.
+
+ An of the specified type that is the editor for this object, or null if the editor cannot be found.
+
+
+
+
+ Returns the events for this instance of a component using the specified attribute array as a filter.
+
+ An array of type that is used as a filter.
+
+ An that represents the filtered events for this component instance.
+
+
+
+
+ Returns the events for this instance of a component.
+
+
+ An that represents the events for this component instance.
+
+
+
+
+ Returns an object that contains the property described by the specified property descriptor.
+
+ A that represents the property whose owner is to be found.
+
+ An that represents the owner of the specified property.
+
+
+
+
+ Represents a JSON array.
+
+
+
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the at the specified index.
+
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+
+ is not a valid index in the .
+ The is read-only.
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+
+ is not a valid index in the .
+ The is read-only.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+ The is read-only.
+
+
+
+ Removes all items from the .
+
+ The is read-only.
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies to.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+ The is read-only.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets the at the reader's current position.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+
+
+
+ Reads the next JSON token from the stream.
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets the at the writer's current position.
+
+
+
+
+ Gets the token being writen.
+
+ The token being writen.
+
+
+
+ Initializes a new instance of the class writing to the given .
+
+ The container being written to.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
+
+
+
+
+ Closes this stream and the underlying stream.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes out a comment /*...*/
containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Represents an abstract JSON token.
+
+
+
+
+ Gets a comparer that can compare two tokens for value equality.
+
+ A that can compare two nodes for value equality.
+
+
+
+ Gets or sets the parent.
+
+ The parent.
+
+
+
+ Gets the root of this .
+
+ The root of this .
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false .
+
+
+
+
+ Compares the values of two tokens, including the values of all descendant tokens.
+
+ The first to compare.
+ The second to compare.
+ true if the tokens are equal; otherwise false.
+
+
+
+ Gets the next sibling token of this node.
+
+ The that contains the next sibling token.
+
+
+
+ Gets the previous sibling token of this node.
+
+ The that contains the previous sibling token.
+
+
+
+ Gets the path of the JSON token.
+
+
+
+
+ Adds the specified content immediately after this token.
+
+ A content object that contains simple content or a collection of content objects to be added after this token.
+
+
+
+ Adds the specified content immediately before this token.
+
+ A content object that contains simple content or a collection of content objects to be added before this token.
+
+
+
+ Returns a collection of the ancestor tokens of this token.
+
+ A collection of the ancestor tokens of this token.
+
+
+
+ Returns a collection of tokens that contain this token, and the ancestors of this token.
+
+ A collection of tokens that contain this token, and the ancestors of this token.
+
+
+
+ Returns a collection of the sibling tokens after this token, in document order.
+
+ A collection of the sibling tokens after this tokens, in document order.
+
+
+
+ Returns a collection of the sibling tokens before this token, in document order.
+
+ A collection of the sibling tokens before this token, in document order.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets the with the specified key converted to the specified type.
+
+ The type to convert the token to.
+ The token key.
+ The converted token value.
+
+
+
+ Get the first child token of this token.
+
+ A containing the first child token of the .
+
+
+
+ Get the last child token of this token.
+
+ A containing the last child token of the .
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+ An of containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
+
+ The type to filter the child tokens on.
+ A containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+ A containing the child values of this , in document order.
+
+
+
+ Removes this token from its parent.
+
+
+
+
+ Replaces this token with the specified token.
+
+ The value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Returns the indented JSON for this token.
+
+
+ The indented JSON for this token.
+
+
+
+
+ Returns the JSON for this token using the given formatting and converters.
+
+ Indicates how the output is formatted.
+ A collection of which will be used when writing the token.
+ The JSON for this token using the given formatting and converters.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to [].
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from [] to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Creates an for this token.
+
+ An that can be used to read this token and its descendants.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the value of the specified object
+
+
+
+ Creates a from an object using the specified .
+
+ The object that will be used to create .
+ The that will be used when reading the object.
+ A with the value of the specified object
+
+
+
+ Creates the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+
+ An that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ An that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ An that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+
+ An that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A , or null.
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ A .
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ An that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ An that contains the selected elements.
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A new instance of the .
+
+
+
+ Adds an object to the annotation list of this .
+
+ The annotation to add.
+
+
+
+ Get the first annotation object of the specified type from this .
+
+ The type of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets the first annotation object of the specified type from this .
+
+ The of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The type of the annotations to retrieve.
+ An that contains the annotations for this .
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The of the annotations to retrieve.
+ An of that contains the annotations that match the specified type for this .
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The type of annotations to remove.
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The of annotations to remove.
+
+
+
+ Represents a JSON property.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the property value.
+
+ The property value.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Specifies the type of token.
+
+
+
+
+ No token type has been set.
+
+
+
+
+ A JSON object.
+
+
+
+
+ A JSON array.
+
+
+
+
+ A JSON constructor.
+
+
+
+
+ A JSON object property.
+
+
+
+
+ A comment.
+
+
+
+
+ An integer value.
+
+
+
+
+ A float value.
+
+
+
+
+ A string value.
+
+
+
+
+ A boolean value.
+
+
+
+
+ A null value.
+
+
+
+
+ An undefined value.
+
+
+
+
+ A date value.
+
+
+
+
+ A raw JSON value.
+
+
+
+
+ A collection of bytes value.
+
+
+
+
+ A Guid value.
+
+
+
+
+ A Uri value.
+
+
+
+
+ A TimeSpan value.
+
+
+
+
+ Represents a value in JSON (string, integer, date, etc).
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false .
+
+
+
+
+ Creates a comment with the given value.
+
+ The value.
+ A comment with the given value.
+
+
+
+ Creates a string with the given value.
+
+ The value.
+ A string with the given value.
+
+
+
+ Creates a null value.
+
+ A null value.
+
+
+
+ Creates a undefined value.
+
+ A undefined value.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets or sets the underlying token value.
+
+ The underlying token value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+
+ true if the current object is equal to the parameter; otherwise, false.
+
+ An object to compare with this object.
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+ The parameter is null.
+
+
+
+
+ Serves as a hash function for a particular type.
+
+
+ A hash code for the current .
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
+
+ An object to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
+ Value
+ Meaning
+ Less than zero
+ This instance is less than .
+ Zero
+ This instance is equal to .
+ Greater than zero
+ This instance is greater than .
+
+
+ is not the same type as this instance.
+
+
+
+
+ Specifies metadata property handling options for the .
+
+
+
+
+ Read metadata properties located at the start of a JSON object.
+
+
+
+
+ Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance.
+
+
+
+
+ Do not try to read metadata properties.
+
+
+
+
+ Represents a trace writer that writes to the application's instances.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of Info
will exclude Verbose
messages and include Info
,
+ Warning
and Error
messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides methods to get attributes.
+
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Represents a trace writer.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of Info
will exclude Verbose
messages and include Info
,
+ Warning
and Error
messages.
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the default collection items .
+
+ The converter.
+
+
+
+ Gets or sets a value indicating whether the collection items preserve object references.
+
+ true if collection items preserve object references; otherwise, false .
+
+
+
+ Gets or sets the collection item reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the collection item type name handling.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Represents a trace writer that writes to memory. When the trace message limit is
+ reached then old trace messages will be removed as new messages are added.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of Info
will exclude Verbose
messages and include Info
,
+ Warning
and Error
messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Returns an enumeration of the most recent trace messages.
+
+ An enumeration of the most recent trace messages.
+
+
+
+ Returns a of the most recent trace messages.
+
+
+ A of the most recent trace messages.
+
+
+
+
+ Provides methods to get attributes from a , , or .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to get attributes for. This parameter should be a , , or .
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the ISerializable object constructor.
+
+ The ISerializable object constructor.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides data for the Error event.
+
+
+
+
+ Gets the current object the error event is being raised against.
+
+ The current object the error event is being raised against.
+
+
+
+ Gets the error context.
+
+ The error context.
+
+
+
+ Initializes a new instance of the class.
+
+ The current object.
+ The error context.
+
+
+
+ Resolves member mappings for a type, camel casing property names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ The property name camel cased.
+
+
+
+ Used by to resolves a for a given .
+
+
+
+
+ Gets a value indicating whether members are being get and set using dynamic code generation.
+ This value is determined by the runtime permissions available.
+
+
+ true if using dynamic code generation; otherwise, false .
+
+
+
+
+ Gets or sets the default members search flags.
+
+ The default members search flags.
+
+
+
+ Gets or sets a value indicating whether compiler generated members should be serialized.
+
+
+ true if serialized compiler generated members; otherwise, false .
+
+
+
+
+ Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types.
+
+
+ true if the interface will be ignored when serializing and deserializing types; otherwise, false .
+
+
+
+
+ Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types.
+
+
+ true if the attribute will be ignored when serializing and deserializing types; otherwise, false .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ If set to true the will use a cached shared with other resolvers of the same type.
+ Sharing the cache will significantly improve performance with multiple resolver instances because expensive reflection will only
+ happen once. This setting can cause unexpected behavior if different instances of the resolver are suppose to produce different
+ results. When set to false it is highly recommended to reuse instances with the .
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Gets the serializable members for the type.
+
+ The type to get serializable members for.
+ The serializable members for the type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates the constructor parameters.
+
+ The constructor to create properties for.
+ The type's member properties.
+ Properties for the given .
+
+
+
+ Creates a for the given .
+
+ The matching member property.
+ The constructor parameter.
+ A created for the given .
+
+
+
+ Resolves the default for the contract.
+
+ Type of the object.
+ The contract's default .
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Determines which contract type is created for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates properties for the given .
+
+ The type to create properties for.
+ /// The member serialization mode for the type.
+ Properties for the given .
+
+
+
+ Creates the used by the serializer to get and set values from a member.
+
+ The member.
+ The used by the serializer to get and set values from a member.
+
+
+
+ Creates a for the given .
+
+ The member's parent .
+ The member to create a for.
+ A created for the given .
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ Resolved name of the property.
+
+
+
+ Resolves the key of the dictionary. By default is used to resolve dictionary keys.
+
+ Key of the dictionary.
+ Resolved key of the dictionary.
+
+
+
+ Gets the resolved name of the property.
+
+ Name of the property.
+ Name of the property.
+
+
+
+ The default serialization binder used when resolving and loading classes from type names.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+ The type of the object the formatter creates a new instance of.
+
+
+
+
+ Provides information surrounding an error.
+
+
+
+
+ Gets the error.
+
+ The error.
+
+
+
+ Gets the original object that caused the error.
+
+ The original object that caused the error.
+
+
+
+ Gets the member that caused the error.
+
+ The member that caused the error.
+
+
+
+ Gets the path of the JSON location where the error occurred.
+
+ The path of the JSON location where the error occurred.
+
+
+
+ Gets or sets a value indicating whether this is handled.
+
+ true if handled; otherwise, false .
+
+
+
+ Used by to resolves a for a given .
+
+
+
+
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Provides methods to get and set values.
+
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the of the collection items.
+
+ The of the collection items.
+
+
+
+ Gets a value indicating whether the collection type is a multidimensional array.
+
+ true if the collection type is a multidimensional array; otherwise, false .
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the collection values.
+
+ true if the creator has a parameter with the collection values; otherwise, false .
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Handles serialization callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+
+
+
+ Handles serialization error callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+ The error context.
+
+
+
+ Sets extension data for an object during deserialization.
+
+ The object to set extension data on.
+ The extension data key.
+ The extension data value.
+
+
+
+ Gets extension data for an object during serialization.
+
+ The object to set extension data on.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the underlying type for the contract.
+
+ The underlying type for the contract.
+
+
+
+ Gets or sets the type created during deserialization.
+
+ The type created during deserialization.
+
+
+
+ Gets or sets whether this type contract is serialized as a reference.
+
+ Whether this type contract is serialized as a reference.
+
+
+
+ Gets or sets the default for this contract.
+
+ The converter.
+
+
+
+ Gets or sets all methods called immediately after deserialization of the object.
+
+ The methods called immediately after deserialization of the object.
+
+
+
+ Gets or sets all methods called during deserialization of the object.
+
+ The methods called during deserialization of the object.
+
+
+
+ Gets or sets all methods called after serialization of the object graph.
+
+ The methods called after serialization of the object graph.
+
+
+
+ Gets or sets all methods called before serialization of the object.
+
+ The methods called before serialization of the object.
+
+
+
+ Gets or sets all method called when an error is thrown during the serialization of the object.
+
+ The methods called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the method called immediately after deserialization of the object.
+
+ The method called immediately after deserialization of the object.
+
+
+
+ Gets or sets the method called during deserialization of the object.
+
+ The method called during deserialization of the object.
+
+
+
+ Gets or sets the method called after serialization of the object graph.
+
+ The method called after serialization of the object graph.
+
+
+
+ Gets or sets the method called before serialization of the object.
+
+ The method called before serialization of the object.
+
+
+
+ Gets or sets the method called when an error is thrown during the serialization of the object.
+
+ The method called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the default creator method used to create the object.
+
+ The default creator method used to create the object.
+
+
+
+ Gets or sets a value indicating whether the default creator is non public.
+
+ true if the default object creator is non-public; otherwise, false .
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the property name resolver.
+
+ The property name resolver.
+
+
+
+ Gets or sets the dictionary key resolver.
+
+ The dictionary key resolver.
+
+
+
+ Gets the of the dictionary keys.
+
+ The of the dictionary keys.
+
+
+
+ Gets the of the dictionary values.
+
+ The of the dictionary values.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the dictionary values.
+
+ true if the creator has a parameter with the dictionary values; otherwise, false .
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Maps a JSON property to a .NET member or constructor parameter.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the type that declared this property.
+
+ The type that declared this property.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets the name of the underlying member or parameter.
+
+ The name of the underlying member or parameter.
+
+
+
+ Gets the that will get and set the during serialization.
+
+ The that will get and set the during serialization.
+
+
+
+ Gets or sets the for this property.
+
+ The for this property.
+
+
+
+ Gets or sets the type of the property.
+
+ The type of the property.
+
+
+
+ Gets or sets the for the property.
+ If set this converter takes presidence over the contract converter for the property type.
+
+ The converter.
+
+
+
+ Gets or sets the member converter.
+
+ The member converter.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false .
+
+
+
+ Gets or sets a value indicating whether this is readable.
+
+ true if readable; otherwise, false .
+
+
+
+ Gets or sets a value indicating whether this is writable.
+
+ true if writable; otherwise, false .
+
+
+
+ Gets or sets a value indicating whether this has a member attribute.
+
+ true if has a member attribute; otherwise, false .
+
+
+
+ Gets the default value.
+
+ The default value.
+
+
+
+ Gets or sets a value indicating whether this is required.
+
+ A value indicating whether this is required.
+
+
+
+ Gets or sets a value indicating whether this property preserves object references.
+
+
+ true if this instance is reference; otherwise, false .
+
+
+
+
+ Gets or sets the property null value handling.
+
+ The null value handling.
+
+
+
+ Gets or sets the property default value handling.
+
+ The default value handling.
+
+
+
+ Gets or sets the property reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the property object creation handling.
+
+ The object creation handling.
+
+
+
+ Gets or sets or sets the type name handling.
+
+ The type name handling.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialize.
+
+ A predicate used to determine whether the property should be serialize.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be deserialized.
+
+ A predicate used to determine whether the property should be deserialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets an action used to set whether the property has been deserialized.
+
+ An action used to set whether the property has been deserialized.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Gets or sets the the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets the the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ A collection of objects.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ When implemented in a derived class, extracts the key from the specified element.
+
+ The element from which to extract the key.
+ The key for the specified element.
+
+
+
+ Adds a object.
+
+ The property to add to the collection.
+
+
+
+ Gets the closest matching object.
+ First attempts to get an exact case match of propertyName and then
+ a case insensitive match.
+
+ Name of the property.
+ A matching property if found.
+
+
+
+ Gets a property by property name.
+
+ The name of the property to get.
+ Type property name string comparison.
+ A matching property if found.
+
+
+
+ Used to resolve references when serializing and deserializing JSON by the .
+
+
+
+
+ Resolves a reference to its object.
+
+ The serialization context.
+ The reference to resolve.
+ The object that
+
+
+
+ Gets the reference for the sepecified object.
+
+ The serialization context.
+ The object to get a reference for.
+ The reference to the object.
+
+
+
+ Determines whether the specified object is referenced.
+
+ The serialization context.
+ The object to test for a reference.
+
+ true if the specified object is referenced; otherwise, false .
+
+
+
+
+ Adds a reference to the specified object.
+
+ The serialization context.
+ The reference.
+ The object to reference.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object member serialization.
+
+ The member object serialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets the constructor parameters required for any non-default constructor
+
+
+
+
+ Gets a collection of instances that define the parameters used with .
+
+
+
+
+ Gets or sets the override constructor used to create the object.
+ This is set when a constructor is marked up using the
+ JsonConstructor attribute.
+
+ The override constructor.
+
+
+
+ Gets or sets the parametrized constructor used to create the object.
+
+ The parametrized constructor.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+ This function is called with a collection of arguments which are defined by the collection.
+
+ The function used to create the object.
+
+
+
+ Gets or sets the extension data setter.
+
+
+
+
+ Gets or sets the extension data getter.
+
+
+
+
+ Gets or sets the extension data value type.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Lookup and create an instance of the JsonConverter type described by the argument.
+
+ The JsonConverter type to create.
+ Optional arguments to pass to an initializing constructor of the JsonConverter.
+ If null, the default constructor is used.
+
+
+
+ Create a factory function that can be used to create instances of a JsonConverter described by the
+ argument type. The returned function can then be used to either invoke the converter's default ctor, or any
+ parameterized constructors by way of an object array.
+
+
+
+
+ Get and set values for a using reflection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ When applied to a method, specifies that the method is called when an error occurs serializing an object.
+
+
+
+
+ Represents a method that constructs an object.
+
+ The object type to create.
+
+
+
+ Specifies how strings are escaped when writing JSON text.
+
+
+
+
+ Only control characters (e.g. newline) are escaped.
+
+
+
+
+ All non-ASCII and control characters (e.g. newline) are escaped.
+
+
+
+
+ HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped.
+
+
+
+
+ Converts the value to the specified type. If the value is unable to be converted, the
+ value is checked whether it assignable to the specified type.
+
+ The value to convert.
+ The culture to use when converting.
+ The type to convert or cast the value to.
+
+ The converted type. If conversion was unsuccessful, the initial value
+ is returned if assignable to the target type.
+
+
+
+
+ Gets a dictionary of the names and values of an Enum type.
+
+
+
+
+
+ Gets a dictionary of the names and values of an Enum type.
+
+ The enum type to get names and values for.
+
+
+
+
+ Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer.
+
+
+
+
+ Determines whether the collection is null or empty.
+
+ The collection.
+
+ true if the collection is null or empty; otherwise, false .
+
+
+
+
+ Adds the elements of the specified collection to the specified generic IList.
+
+ The list to add to.
+ The collection of elements to add.
+
+
+
+ Gets the type of the typed collection's items.
+
+ The type.
+ The type of the typed collection's items.
+
+
+
+ Gets the member's underlying type.
+
+ The member.
+ The underlying type of the member.
+
+
+
+ Determines whether the member is an indexed property.
+
+ The member.
+
+ true if the member is an indexed property; otherwise, false .
+
+
+
+
+ Determines whether the property is an indexed property.
+
+ The property.
+
+ true if the property is an indexed property; otherwise, false .
+
+
+
+
+ Gets the member's value on the object.
+
+ The member.
+ The target object.
+ The member's value on the object.
+
+
+
+ Sets the member's value on the target object.
+
+ The member.
+ The target.
+ The value.
+
+
+
+ Determines whether the specified MemberInfo can be read.
+
+ The MemberInfo to determine whether can be read.
+ /// if set to true then allow the member to be gotten non-publicly.
+
+ true if the specified MemberInfo can be read; otherwise, false .
+
+
+
+
+ Determines whether the specified MemberInfo can be set.
+
+ The MemberInfo to determine whether can be set.
+ if set to true then allow the member to be set non-publicly.
+ if set to true then allow the member to be set if read-only.
+
+ true if the specified MemberInfo can be set; otherwise, false .
+
+
+
+
+ Determines whether the string is all white space. Empty string will return false.
+
+ The string to test whether it is all white space.
+
+ true if the string is all white space; otherwise, false .
+
+
+
+
+ Nulls an empty string.
+
+ The string.
+ Null if the string was null, otherwise the string unchanged.
+
+
+
+ Indicating whether a property is required.
+
+
+
+
+ The property is not required. The default state.
+
+
+
+
+ The property must be defined in JSON but can be a null value.
+
+
+
+
+ The property must be defined in JSON and cannot be a null value.
+
+
+
+
+ The property is not required but it cannot be a null value.
+
+
+
+
+ Specifies reference handling options for the .
+ Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement ISerializable.
+
+
+
+
+
+
+
+ Do not preserve references when serializing types.
+
+
+
+
+ Preserve references when serializing into a JSON object structure.
+
+
+
+
+ Preserve references when serializing into a JSON array structure.
+
+
+
+
+ Preserve references when serializing.
+
+
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if LineNumber and LinePosition can be provided; otherwise, false .
+
+
+
+
+ Gets the current line number.
+
+ The current line number or 0 if no line information is available (for example, HasLineInfo returns false).
+
+
+
+ Gets the current line position.
+
+ The current line position or 0 if no line information is available (for example, HasLineInfo returns false).
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Gets or sets a value indicating whether null items are allowed in the collection.
+
+ true if null items are allowed in the collection; otherwise, false .
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a flag indicating whether the array can contain null items
+
+ A flag indicating whether the array can contain null items.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the id.
+
+ The id.
+
+
+
+ Gets or sets the title.
+
+ The title.
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets the collection's items converter.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the JsonConverter described by ItemConverterType.
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number,
+ order, and type of these parameters.
+
+
+ [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+ Gets or sets a value that indicates whether to preserve object references.
+
+
+ true to keep object reference; otherwise, false . The default is false .
+
+
+
+
+ Gets or sets a value that indicates whether to preserve collection's items references.
+
+
+ true to keep collection's items object references; otherwise, false . The default is false .
+
+
+
+
+ Gets or sets the reference loop handling used when serializing the collection's items.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the collection's items.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Specifies default value handling options for the .
+
+
+
+
+
+
+
+
+ Include members where the member value is the same as the member's default value when serializing objects.
+ Included members are written to JSON. Has no effect when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ so that is is not written to JSON.
+ This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers,
+ decimals and floating point numbers; and false for booleans). The default value ignored can be changed by
+ placing the on the property.
+
+
+
+
+ Members with a default value but no JSON will be set to their default value when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ and sets members to their default value when deserializing.
+
+
+
+
+ Instructs the to use the specified when serializing the member or class.
+
+
+
+
+ Gets the of the converter.
+
+ The of the converter.
+
+
+
+ The parameter list to use when constructing the JsonConverter described by ConverterType.
+ If null, the default constructor is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the converter.
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the converter.
+ Parameter list to use when constructing the JsonConverter. Can be null.
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the member serialization.
+
+ The member serialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified member serialization.
+
+ The member serialization.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Specifies the settings on a object.
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) is handled.
+
+ Reference loop handling.
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+
+ Missing member handling.
+
+
+
+ Gets or sets how objects are created during deserialization.
+
+ The object creation handling.
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+
+ Null value handling.
+
+
+
+ Gets or sets how null default are handled during serialization and deserialization.
+
+ The default value handling.
+
+
+
+ Gets or sets a collection that will be used during serialization.
+
+ The converters.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+
+ The preserve references handling.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than TypeNameHandling.None .
+
+ The type name handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+
+ The metadata properties handling.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+
+ The type name assembly format.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+
+ The constructor handling.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+ The contract resolver.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+ The reference resolver.
+
+
+
+ Gets or sets a function that creates the used by the serializer when resolving references.
+
+ A function that creates the used by the serializer when resolving references.
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the error handler called during serialization and deserialization.
+
+ The error handler called during serialization and deserialization.
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Indicates how JSON text output is formatted.
+
+
+
+
+ Get or set how dates are written to JSON text.
+
+
+
+
+ Get or set how time zones are handling during serialization and deserialization.
+
+
+
+
+ Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Get or set how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON.
+
+
+
+
+ Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Get or set how strings are escaped when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional content after deserializing an object.
+
+
+ true if there will be a check for additional content after deserializing an object; otherwise, false .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Specifies the member serialization options for the .
+
+
+
+
+ All public members are serialized by default. Members can be excluded using or .
+ This is the default member serialization mode.
+
+
+
+
+ Only members marked with or are serialized.
+ This member serialization mode can also be set by marking the class with .
+
+
+
+
+ All public and private fields are serialized. Members can be excluded using or .
+ This member serialization mode can also be set by marking the class with
+ and setting IgnoreSerializableAttribute on to false.
+
+
+
+
+ Specifies how object creation is handled by the .
+
+
+
+
+ Reuse existing objects, create new objects when needed.
+
+
+
+
+ Only reuse existing objects.
+
+
+
+
+ Always create new objects.
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to JSON text data.
+
+
+
+
+ Initializes a new instance of the class with the specified .
+
+ The TextReader containing the XML data to read.
+
+
+
+ Gets or sets the reader's character buffer pool.
+
+
+
+
+ Reads the next JSON token from the stream.
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a [].
+
+ A [] or a null reference if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Changes the state to closed.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if LineNumber and LinePosition can be provided; otherwise, false .
+
+
+
+
+ Gets the current line number.
+
+
+ The current line number or 0 if no line information is available (for example, HasLineInfo returns false).
+
+
+
+
+ Gets the current line position.
+
+
+ The current line position or 0 if no line information is available (for example, HasLineInfo returns false).
+
+
+
+
+ Instructs the to always serialize the member with the specified name.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the JsonConverter described by ItemConverterType.
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number,
+ order, and type of these parameters.
+
+
+ [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+ Gets or sets the null value handling used when serializing this property.
+
+ The null value handling.
+
+
+
+ Gets or sets the default value handling used when serializing this property.
+
+ The default value handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing this property.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the object creation handling used when deserializing this property.
+
+ The object creation handling.
+
+
+
+ Gets or sets the type name handling used when serializing this property.
+
+ The type name handling.
+
+
+
+ Gets or sets whether this property's value is serialized as a reference.
+
+ Whether this property's value is serialized as a reference.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets a value indicating whether this property is required.
+
+
+ A value indicating whether this property is required.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ Gets or sets the the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ Name of the property.
+
+
+
+ Instructs the not to serialize the public field or public read/write property value.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets or sets the writer's character array pool.
+
+
+
+
+ Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented .
+
+
+
+
+ Gets or sets which character to use to quote attribute values.
+
+
+
+
+ Gets or sets which character to use for indenting when is set to Formatting.Indented .
+
+
+
+
+ Gets or sets a value indicating whether object names will be surrounded with quotes.
+
+
+
+
+ Creates an instance of the JsonWriter class using the specified .
+
+ The TextWriter to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
+
+
+
+
+ Closes this stream and the underlying stream.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes out a comment /*...*/
containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes out the given white space.
+
+ The string of white space characters.
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Converts an object to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Gets a value indicating whether this can read JSON.
+
+ true if this can read JSON; otherwise, false .
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+ true if this can write JSON; otherwise, false .
+
+
+
+ Represents a collection of .
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Specifies the state of the reader.
+
+
+
+
+ The Read method has not been called.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Reader is at a property.
+
+
+
+
+ Reader is at the start of an object.
+
+
+
+
+ Reader is in an object.
+
+
+
+
+ Reader is at the start of an array.
+
+
+
+
+ Reader is in an array.
+
+
+
+
+ The Close method has been called.
+
+
+
+
+ Reader has just read a value.
+
+
+
+
+ Reader is at the start of a constructor.
+
+
+
+
+ Reader in a constructor.
+
+
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Gets the current reader state.
+
+ The current reader state.
+
+
+
+ Gets or sets a value indicating whether the underlying stream or
+ should be closed when the reader is closed.
+
+
+ true to close the underlying stream or when
+ the reader is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether multiple pieces of JSON content can
+ be read from a continuous stream without erroring.
+
+
+ true to support reading multiple pieces of JSON content; otherwise false. The default is false.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+ Get or set how time zones are handling when reading JSON.
+
+
+
+
+ Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Get or set how custom date formatted strings are parsed when reading JSON.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+ Gets The Common Language Runtime (CLR) type for the current JSON token.
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class with the specified .
+
+
+
+
+ Reads the next JSON token from the stream.
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a [].
+
+ A [] or a null reference if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Skips the children of the current token.
+
+
+
+
+ Sets the current token.
+
+ The new token.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+
+
+
+ Sets the state based on current token type.
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Changes the to Closed.
+
+
+
+
+ Provides methods for converting between common language runtime types and JSON types.
+
+
+
+
+
+
+
+ Gets or sets a function that creates default .
+ Default settings are automatically used by serialization methods on ,
+ and and on .
+ To serialize without using any default settings create a with
+ .
+
+
+
+
+ Represents JavaScript's boolean value true as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's boolean value false as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's null as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's undefined as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's positive infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's negative infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's NaN as a string. This field is read-only.
+
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ The time zone handling when the date is converted to a string.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ The string escape handling.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Serializes the specified object to a JSON string.
+
+ The object to serialize.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting.
+
+ The object to serialize.
+ Indicates how the output is formatted.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a collection of .
+
+ The object to serialize.
+ A collection converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting and a collection of .
+
+ The object to serialize.
+ Indicates how the output is formatted.
+ A collection converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifing the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using formatting and .
+
+ The object to serialize.
+ Indicates how the output is formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ Indicates how the output is formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifing the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Deserializes the JSON to a .NET object.
+
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to a .NET object using .
+
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The JSON to deserialize.
+ The of object being deserialized.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type.
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be infered from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type using .
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be infered from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The type of the object to deserialize to.
+ The object to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The JSON to deserialize.
+ The type of the object to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Populates the object with values from the JSON string.
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+
+
+ Populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+
+
+ Serializes the XML node to a JSON string.
+
+ The node to serialize.
+ A JSON string of the XmlNode.
+
+
+
+ Serializes the XML node to a JSON string using formatting.
+
+ The node to serialize.
+ Indicates how the output is formatted.
+ A JSON string of the XmlNode.
+
+
+
+ Serializes the XML node to a JSON string using formatting and omits the root object if is true .
+
+ The node to serialize.
+ Indicates how the output is formatted.
+ Omits writing the root object.
+ A JSON string of the XmlNode.
+
+
+
+ Deserializes the XmlNode from a JSON string.
+
+ The JSON string.
+ The deserialized XmlNode
+
+
+
+ Deserializes the XmlNode from a JSON string nested in a root elment specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized XmlNode
+
+
+
+ Deserializes the XmlNode from a JSON string nested in a root elment specified by
+ and writes a .NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized XmlNode
+
+
+
+ Serializes the to a JSON string.
+
+ The node to convert to JSON.
+ A JSON string of the XNode.
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to convert to JSON.
+ Indicates how the output is formatted.
+ A JSON string of the XNode.
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true .
+
+ The node to serialize.
+ Indicates how the output is formatted.
+ Omits writing the root object.
+ A JSON string of the XNode.
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized XNode
+
+
+
+ Deserializes the from a JSON string nested in a root elment specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized XNode
+
+
+
+ Deserializes the from a JSON string nested in a root elment specified by
+ and writes a .NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized XNode
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Serializes and deserializes objects into and from the JSON format.
+ The enables you to control how objects are encoded into JSON.
+
+
+
+
+ Occurs when the errors during serialization and deserialization.
+
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than TypeNameHandling.None .
+
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+
+ The type name assembly format.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+
+
+
+
+ Get or set how reference loops (e.g. a class referencing itself) is handled.
+
+
+
+
+ Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+
+
+
+
+ Get or set how null values are handled during serialization and deserialization.
+
+
+
+
+ Get or set how null default are handled during serialization and deserialization.
+
+
+
+
+ Gets or sets how objects are created during deserialization.
+
+ The object creation handling.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+
+ The constructor handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+
+ The metadata properties handling.
+
+
+
+ Gets a collection that will be used during serialization.
+
+ Collection that will be used during serialization.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Indicates how JSON text output is formatted.
+
+
+
+
+ Get or set how dates are written to JSON text.
+
+
+
+
+ Get or set how time zones are handling during serialization and deserialization.
+
+
+
+
+ Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Get or set how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON text.
+
+
+
+
+ Get or set how strings are escaped when writing JSON text.
+
+
+
+
+ Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional JSON content after deserializing an object.
+
+
+ true if there will be a check for additional JSON content after deserializing an object; otherwise, false .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance.
+ The will not use default settings
+ from .
+
+
+ A new instance.
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will not use default settings
+ from .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance.
+ The will use default settings
+ from .
+
+
+ A new instance.
+ The will use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Deserializes the JSON structure contained by the specified .
+
+ The that contains the JSON structure to deserialize.
+ The being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The type of the object to deserialize.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Serializes the specified and writes the JSON structure
+ to a Stream using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Serializes the specified and writes the JSON structure
+ to a Stream using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifing the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ to a Stream using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifing the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ to a Stream using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Specifies missing member handling options for the .
+
+
+
+
+ Ignore a missing member and do not attempt to deserialize it.
+
+
+
+
+ Throw a when a missing member is encountered during deserialization.
+
+
+
+
+ Specifies null value handling options for the .
+
+
+
+
+
+
+
+
+ Include null values when serializing and deserializing objects.
+
+
+
+
+ Ignore null values when serializing and deserializing objects.
+
+
+
+
+ Specifies reference loop handling options for the .
+
+
+
+
+ Throw a when a loop is encountered.
+
+
+
+
+ Ignore loop references and do not serialize.
+
+
+
+
+ Serialize loop references.
+
+
+
+
+ Specifies type name handling options for the .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than TypeNameHandling.None .
+
+
+
+
+ Do not include the .NET type name when serializing types.
+
+
+
+
+ Include the .NET type name when serializing into a JSON object structure.
+
+
+
+
+ Include the .NET type name when serializing into a JSON array structure.
+
+
+
+
+ Always include the .NET type name when serializing.
+
+
+
+
+ Include the .NET type name when the type of the object being serialized is not the same as its declared type.
+
+
+
+
+ Specifies the type of JSON token.
+
+
+
+
+ This is returned by the if a method has not been called.
+
+
+
+
+ An object start token.
+
+
+
+
+ An array start token.
+
+
+
+
+ A constructor start token.
+
+
+
+
+ An object property name.
+
+
+
+
+ A comment.
+
+
+
+
+ Raw JSON.
+
+
+
+
+ An integer.
+
+
+
+
+ A float.
+
+
+
+
+ A string.
+
+
+
+
+ A boolean.
+
+
+
+
+ A null token.
+
+
+
+
+ An undefined token.
+
+
+
+
+ An object end token.
+
+
+
+
+ An array end token.
+
+
+
+
+ A constructor end token.
+
+
+
+
+ A Date.
+
+
+
+
+ Byte data.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets or sets a value indicating whether the underlying stream or
+ should be closed when the writer is closed.
+
+
+ true to close the underlying stream or when
+ the writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets the top.
+
+ The top.
+
+
+
+ Gets the state of the writer.
+
+
+
+
+ Gets the path of the writer.
+
+
+
+
+ Indicates how JSON text output is formatted.
+
+
+
+
+ Get or set how dates are written to JSON text.
+
+
+
+
+ Get or set how time zones are handling when writing JSON text.
+
+
+
+
+ Get or set how strings are escaped when writing JSON text.
+
+
+
+
+ Get or set how special floating point numbers, e.g. ,
+ and ,
+ are written to JSON text.
+
+
+
+
+ Get or set how and values are formatting when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when writing JSON. Defaults to .
+
+
+
+
+ Creates an instance of the JsonWriter class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
+
+
+
+
+ Closes this stream and the underlying stream.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the end of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the end of an array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end constructor.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes the end of the current JSON object or array.
+
+
+
+
+ Writes the current token and its children.
+
+ The to read the token from.
+
+
+
+ Writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+
+
+
+ Writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ A null value can be passed to the method for token's that don't have a value, e.g. .
+
+
+
+ Writes the token.
+
+ The to write.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes out a comment /*...*/
containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes out the given white space.
+
+ The string of white space characters.
+
+
+
+ Releases unmanaged and - optionally - managed resources
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Sets the state of the JsonWriter,
+
+ The JsonToken being written.
+ The value being written.
+
+
+
+ Specifies the state of the .
+
+
+
+
+ An exception has been thrown, which has left the in an invalid state.
+ You may call the method to put the in the Closed state.
+ Any other method calls results in an being thrown.
+
+
+
+
+ The method has been called.
+
+
+
+
+ An object is being written.
+
+
+
+
+ A array is being written.
+
+
+
+
+ A constructor is being written.
+
+
+
+
+ A property is being written.
+
+
+
+
+ A write method has not been called.
+
+
+
+
diff --git a/Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.XML.meta b/Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.XML.meta
new file mode 100644
index 0000000..7623f10
--- /dev/null
+++ b/Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.XML.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d6807fedb8dcaf04682d2c84f0ab753f
+timeCreated: 1466788355
+licenseType: Store
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.dll b/Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.dll
new file mode 100644
index 0000000..cea08b2
Binary files /dev/null and b/Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.dll differ
diff --git a/Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.dll.meta b/Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.dll.meta
new file mode 100644
index 0000000..e130150
--- /dev/null
+++ b/Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.dll.meta
@@ -0,0 +1,75 @@
+fileFormatVersion: 2
+guid: 17aef65a15b471f468b5fbeb4ff0c6a1
+timeCreated: 1466788349
+licenseType: Store
+PluginImporter:
+ serializedVersion: 1
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ platformData:
+ Android:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ Any:
+ enabled: 0
+ settings: {}
+ Editor:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ DefaultValueInitialized: true
+ OS: AnyOS
+ Linux:
+ enabled: 1
+ settings:
+ CPU: x86
+ Linux64:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ LinuxUniversal:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ OSXIntel:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ OSXIntel64:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ OSXUniversal:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ SamsungTV:
+ enabled: 0
+ settings:
+ STV_MODEL: STANDARD_13
+ Win:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ Win64:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ DontProcess: False
+ PlaceholderPath:
+ SDK: AnySDK
+ ScriptingBackend: Il2Cpp
+ iOS:
+ enabled: 0
+ settings:
+ CompileFlags:
+ FrameworkDependencies:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/JsonDotNet/Assemblies/Windows.meta b/Assets/JsonDotNet/Assemblies/Windows.meta
new file mode 100644
index 0000000..0c47db5
--- /dev/null
+++ b/Assets/JsonDotNet/Assemblies/Windows.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 1418141139a6ac443b18cb05c0643a29
+folderAsset: yes
+timeCreated: 1466788345
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/JsonDotNet/Assemblies/Windows/Newtonsoft.Json.XML b/Assets/JsonDotNet/Assemblies/Windows/Newtonsoft.Json.XML
new file mode 100644
index 0000000..1af577e
--- /dev/null
+++ b/Assets/JsonDotNet/Assemblies/Windows/Newtonsoft.Json.XML
@@ -0,0 +1,7977 @@
+
+
+
+ Newtonsoft.Json
+
+
+
+
+ Represents a BSON Oid (object id).
+
+
+
+
+ Gets or sets the value of the Oid.
+
+ The value of the Oid.
+
+
+
+ Initializes a new instance of the class.
+
+ The Oid value.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary.
+
+
+ true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false .
+
+
+
+
+ Gets or sets a value indicating whether the root object will be read as a JSON array.
+
+
+ true if the root object will be read as a JSON array; otherwise, false .
+
+
+
+
+ Gets or sets the used when reading values from BSON.
+
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The stream.
+
+
+
+ Initializes a new instance of the class.
+
+ The reader.
+
+
+
+ Initializes a new instance of the class.
+
+ The stream.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The reader.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Reads the next JSON token from the stream.
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Changes the to Closed.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets or sets the used when writing values to BSON.
+ When set to no conversion will occur.
+
+ The used when writing values to BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The stream.
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
+
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes out a comment /*...*/
containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Closes this stream and the underlying stream.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value that represents a BSON object id.
+
+ The Object ID value to write.
+
+
+
+ Writes a BSON regex.
+
+ The regex pattern.
+ The regex options.
+
+
+
+ Specifies how constructors are used when initializing objects during deserialization by the .
+
+
+
+
+ First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor.
+
+
+
+
+ Json.NET will use a non-public default constructor before falling back to a paramatized constructor.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Create a custom object
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Creates an object which will then be populated by the serializer.
+
+ Type of the object.
+ The created object.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false .
+
+
+
+
+ Provides a base class for converting a to and from JSON.
+
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Converts a F# discriminated union type to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Converts an ExpandoObject to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false .
+
+
+
+
+
+
+
+
+
+
+
+ Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z).
+
+
+
+
+ Gets or sets the date time styles used when converting a date to and from JSON.
+
+ The date time styles used when converting a date to and from JSON.
+
+
+
+ Gets or sets the date time format used when converting a date to and from JSON.
+
+ The date time format used when converting a date to and from JSON.
+
+
+
+ Gets or sets the culture used when converting a date to and from JSON.
+
+ The culture used when converting a date to and from JSON.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)).
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Converts an to and from its name string value.
+
+
+
+
+ Gets or sets a value indicating whether the written enum text should be camel case.
+
+ true if the written enum text will be camel case; otherwise, false .
+
+
+
+ Gets or sets a value indicating whether integer values are allowed.
+
+ true if integers are allowed; otherwise, false .
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the written enum text will be camel case; otherwise, false .
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Json Converter for Vector2, Vector3 and Vector4. Only serializes x, y, (z) and (w) properties.
+
+
+
+
+ Default Constructor - All Vector types enabled by default
+
+
+
+
+ Selectively enable Vector types
+
+ Use for Vector2 objects
+ Use for Vector3 objects
+ Use for Vector4 objects
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Converts a to and from a string (e.g. "1.2.3.4").
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Converts XML to and from JSON.
+
+
+
+
+ Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements.
+
+ The name of the deserialize root element.
+
+
+
+ Gets or sets a flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ true if the array attibute is written to the XML; otherwise, false .
+
+
+
+ Gets or sets a value indicating whether to write the root JSON object.
+
+ true if the JSON root object is omitted; otherwise, false .
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The calling serializer.
+ The value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Checks if the attributeName is a namespace attribute.
+
+ Attribute name to test.
+ The attribute name prefix if it has one, otherwise an empty string.
+ True if attribute name is for a namespace attribute, otherwise false.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false .
+
+
+
+
+ Specifies how dates are formatted when writing JSON text.
+
+
+
+
+ Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z".
+
+
+
+
+ Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/".
+
+
+
+
+ Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text.
+
+
+
+
+ Date formatted strings are not parsed to a date type and are read as strings.
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+
+
+ Treat as a local time if a is being converted to a string.
+ If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+
+
+ Time zone information should be preserved when converting.
+
+
+
+
+ Specifies default value handling options for the .
+
+
+
+
+
+
+
+
+ Include members where the member value is the same as the member's default value when serializing objects.
+ Included members are written to JSON. Has no effect when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ so that is is not written to JSON.
+ This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers,
+ decimals and floating point numbers; and false for booleans). The default value ignored can be changed by
+ placing the on the property.
+
+
+
+
+ Members with a default value but no JSON will be set to their default value when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ and sets members to their default value when deserializing.
+
+
+
+
+ Specifies float format handling options when writing special floating point numbers, e.g. ,
+ and with .
+
+
+
+
+ Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity".
+
+
+
+
+ Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity.
+ Note that this will produce non-valid JSON.
+
+
+
+
+ Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a property.
+
+
+
+
+ Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Specifies formatting options for the .
+
+
+
+
+ No special formatting is applied. This is the default.
+
+
+
+
+ Causes child objects to be indented according to the and settings.
+
+
+
+
+ Provides an interface for using pooled arrays.
+
+ The array type content.
+
+
+
+ Rent a array from the pool. This array must be returned when it is no longer needed.
+
+ The minimum required length of the array. The returned array may be longer.
+ The rented array from the pool. This array must be returned when it is no longer needed.
+
+
+
+ Return an array to the pool.
+
+ The array that is being returned.
+
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if LineNumber and LinePosition can be provided; otherwise, false .
+
+
+
+
+ Gets the current line number.
+
+ The current line number or 0 if no line information is available (for example, HasLineInfo returns false).
+
+
+
+ Gets the current line position.
+
+ The current line position or 0 if no line information is available (for example, HasLineInfo returns false).
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Gets or sets a value indicating whether null items are allowed in the collection.
+
+ true if null items are allowed in the collection; otherwise, false .
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a flag indicating whether the array can contain null items
+
+ A flag indicating whether the array can contain null items.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to use the specified constructor when deserializing that object.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the id.
+
+ The id.
+
+
+
+ Gets or sets the title.
+
+ The title.
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets the collection's items converter.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the JsonConverter described by ItemConverterType.
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number,
+ order, and type of these parameters.
+
+
+ [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+ Gets or sets a value that indicates whether to preserve object references.
+
+
+ true to keep object reference; otherwise, false . The default is false .
+
+
+
+
+ Gets or sets a value that indicates whether to preserve collection's items references.
+
+
+ true to keep collection's items object references; otherwise, false . The default is false .
+
+
+
+
+ Gets or sets the reference loop handling used when serializing the collection's items.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the collection's items.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Provides methods for converting between common language runtime types and JSON types.
+
+
+
+
+
+
+
+ Gets or sets a function that creates default .
+ Default settings are automatically used by serialization methods on ,
+ and and on .
+ To serialize without using any default settings create a with
+ .
+
+
+
+
+ Represents JavaScript's boolean value true as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's boolean value false as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's null as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's undefined as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's positive infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's negative infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's NaN as a string. This field is read-only.
+
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ The time zone handling when the date is converted to a string.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ The string escape handling.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Serializes the specified object to a JSON string.
+
+ The object to serialize.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting.
+
+ The object to serialize.
+ Indicates how the output is formatted.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a collection of .
+
+ The object to serialize.
+ A collection converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting and a collection of .
+
+ The object to serialize.
+ Indicates how the output is formatted.
+ A collection converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifing the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using formatting and .
+
+ The object to serialize.
+ Indicates how the output is formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ Indicates how the output is formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifing the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Asynchronously serializes the specified object to a JSON string.
+ Serialization will happen on a new thread.
+
+ The object to serialize.
+
+ A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object.
+
+
+
+
+ Asynchronously serializes the specified object to a JSON string using formatting.
+ Serialization will happen on a new thread.
+
+ The object to serialize.
+ Indicates how the output is formatted.
+
+ A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object.
+
+
+
+
+ Asynchronously serializes the specified object to a JSON string using formatting and a collection of .
+ Serialization will happen on a new thread.
+
+ The object to serialize.
+ Indicates how the output is formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object.
+
+
+
+
+ Deserializes the JSON to a .NET object.
+
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to a .NET object using .
+
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The JSON to deserialize.
+ The of object being deserialized.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type.
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be infered from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type using .
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be infered from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The type of the object to deserialize to.
+ The object to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The JSON to deserialize.
+ The type of the object to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Asynchronously deserializes the JSON to the specified .NET type.
+ Deserialization will happen on a new thread.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+
+ A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string.
+
+
+
+
+ Asynchronously deserializes the JSON to the specified .NET type using .
+ Deserialization will happen on a new thread.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+ A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string.
+
+
+
+
+ Asynchronously deserializes the JSON to the specified .NET type.
+ Deserialization will happen on a new thread.
+
+ The JSON to deserialize.
+
+ A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string.
+
+
+
+
+ Asynchronously deserializes the JSON to the specified .NET type using .
+ Deserialization will happen on a new thread.
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+ A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string.
+
+
+
+
+ Populates the object with values from the JSON string.
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+
+
+ Populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+
+
+ Asynchronously populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+ A task that represents the asynchronous populate operation.
+
+
+
+
+ Serializes the to a JSON string.
+
+ The node to convert to JSON.
+ A JSON string of the XNode.
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to convert to JSON.
+ Indicates how the output is formatted.
+ A JSON string of the XNode.
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true .
+
+ The node to serialize.
+ Indicates how the output is formatted.
+ Omits writing the root object.
+ A JSON string of the XNode.
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized XNode
+
+
+
+ Deserializes the from a JSON string nested in a root elment specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized XNode
+
+
+
+ Deserializes the from a JSON string nested in a root elment specified by
+ and writes a .NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized XNode
+
+
+
+ Converts an object to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false .
+
+
+
+
+ Gets a value indicating whether this can read JSON.
+
+ true if this can read JSON; otherwise, false .
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+ true if this can write JSON; otherwise, false .
+
+
+
+ Instructs the to use the specified when serializing the member or class.
+
+
+
+
+ Gets the of the converter.
+
+ The of the converter.
+
+
+
+ The parameter list to use when constructing the JsonConverter described by ConverterType.
+ If null, the default constructor is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the converter.
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the converter.
+ Parameter list to use when constructing the JsonConverter. Can be null.
+
+
+
+ Represents a collection of .
+
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Instructs the to deserialize properties with no matching class member into the specified collection
+ and write values during serialization.
+
+
+
+
+ Gets or sets a value that indicates whether to write extension data when serializing the object.
+
+
+ true to write extension data when serializing the object; otherwise, false . The default is true .
+
+
+
+
+ Gets or sets a value that indicates whether to read extension data when deserializing the object.
+
+
+ true to read extension data when deserializing the object; otherwise, false . The default is true .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Instructs the not to serialize the public field or public read/write property value.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the member serialization.
+
+ The member serialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified member serialization.
+
+ The member serialization.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to always serialize the member with the specified name.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the JsonConverter described by ItemConverterType.
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number,
+ order, and type of these parameters.
+
+
+ [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+ Gets or sets the null value handling used when serializing this property.
+
+ The null value handling.
+
+
+
+ Gets or sets the default value handling used when serializing this property.
+
+ The default value handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing this property.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the object creation handling used when deserializing this property.
+
+ The object creation handling.
+
+
+
+ Gets or sets the type name handling used when serializing this property.
+
+ The type name handling.
+
+
+
+ Gets or sets whether this property's value is serialized as a reference.
+
+ Whether this property's value is serialized as a reference.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets a value indicating whether this property is required.
+
+
+ A value indicating whether this property is required.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ Gets or sets the the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ Name of the property.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Specifies the state of the reader.
+
+
+
+
+ The Read method has not been called.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Reader is at a property.
+
+
+
+
+ Reader is at the start of an object.
+
+
+
+
+ Reader is in an object.
+
+
+
+
+ Reader is at the start of an array.
+
+
+
+
+ Reader is in an array.
+
+
+
+
+ The Close method has been called.
+
+
+
+
+ Reader has just read a value.
+
+
+
+
+ Reader is at the start of a constructor.
+
+
+
+
+ Reader in a constructor.
+
+
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Gets the current reader state.
+
+ The current reader state.
+
+
+
+ Gets or sets a value indicating whether the underlying stream or
+ should be closed when the reader is closed.
+
+
+ true to close the underlying stream or when
+ the reader is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether multiple pieces of JSON content can
+ be read from a continuous stream without erroring.
+
+
+ true to support reading multiple pieces of JSON content; otherwise false. The default is false.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+ Get or set how time zones are handling when reading JSON.
+
+
+
+
+ Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Get or set how custom date formatted strings are parsed when reading JSON.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+ Gets The Common Language Runtime (CLR) type for the current JSON token.
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class with the specified .
+
+
+
+
+ Reads the next JSON token from the stream.
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a [].
+
+ A [] or a null reference if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Skips the children of the current token.
+
+
+
+
+ Sets the current token.
+
+ The new token.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+
+
+
+ Sets the state based on current token type.
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Changes the to Closed.
+
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Instructs the to always serialize the member, and require the member has a value.
+
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Serializes and deserializes objects into and from the JSON format.
+ The enables you to control how objects are encoded into JSON.
+
+
+
+
+ Occurs when the errors during serialization and deserialization.
+
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than TypeNameHandling.None .
+
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+
+ The type name assembly format.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+
+
+
+
+ Get or set how reference loops (e.g. a class referencing itself) is handled.
+
+
+
+
+ Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+
+
+
+
+ Get or set how null values are handled during serialization and deserialization.
+
+
+
+
+ Get or set how null default are handled during serialization and deserialization.
+
+
+
+
+ Gets or sets how objects are created during deserialization.
+
+ The object creation handling.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+
+ The constructor handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+
+ The metadata properties handling.
+
+
+
+ Gets a collection that will be used during serialization.
+
+ Collection that will be used during serialization.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Indicates how JSON text output is formatted.
+
+
+
+
+ Get or set how dates are written to JSON text.
+
+
+
+
+ Get or set how time zones are handling during serialization and deserialization.
+
+
+
+
+ Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Get or set how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON text.
+
+
+
+
+ Get or set how strings are escaped when writing JSON text.
+
+
+
+
+ Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional JSON content after deserializing an object.
+
+
+ true if there will be a check for additional JSON content after deserializing an object; otherwise, false .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance.
+ The will not use default settings
+ from .
+
+
+ A new instance.
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will not use default settings
+ from .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance.
+ The will use default settings
+ from .
+
+
+ A new instance.
+ The will use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Deserializes the JSON structure contained by the specified .
+
+ The that contains the JSON structure to deserialize.
+ The being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The type of the object to deserialize.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Serializes the specified and writes the JSON structure
+ to a Stream using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Serializes the specified and writes the JSON structure
+ to a Stream using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifing the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ to a Stream using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifing the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ to a Stream using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Specifies the settings on a object.
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) is handled.
+
+ Reference loop handling.
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+
+ Missing member handling.
+
+
+
+ Gets or sets how objects are created during deserialization.
+
+ The object creation handling.
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+
+ Null value handling.
+
+
+
+ Gets or sets how null default are handled during serialization and deserialization.
+
+ The default value handling.
+
+
+
+ Gets or sets a collection that will be used during serialization.
+
+ The converters.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+
+ The preserve references handling.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than TypeNameHandling.None .
+
+ The type name handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+
+ The metadata properties handling.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+
+ The type name assembly format.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+
+ The constructor handling.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+ The contract resolver.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+ The reference resolver.
+
+
+
+ Gets or sets a function that creates the used by the serializer when resolving references.
+
+ A function that creates the used by the serializer when resolving references.
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the error handler called during serialization and deserialization.
+
+ The error handler called during serialization and deserialization.
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Indicates how JSON text output is formatted.
+
+
+
+
+ Get or set how dates are written to JSON text.
+
+
+
+
+ Get or set how time zones are handling during serialization and deserialization.
+
+
+
+
+ Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Get or set how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON.
+
+
+
+
+ Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Get or set how strings are escaped when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional content after deserializing an object.
+
+
+ true if there will be a check for additional content after deserializing an object; otherwise, false .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to JSON text data.
+
+
+
+
+ Initializes a new instance of the class with the specified .
+
+ The TextReader containing the XML data to read.
+
+
+
+ Gets or sets the reader's character buffer pool.
+
+
+
+
+ Reads the next JSON token from the stream.
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a [].
+
+ A [] or a null reference if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the stream as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Changes the state to closed.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if LineNumber and LinePosition can be provided; otherwise, false .
+
+
+
+
+ Gets the current line number.
+
+
+ The current line number or 0 if no line information is available (for example, HasLineInfo returns false).
+
+
+
+
+ Gets the current line position.
+
+
+ The current line position or 0 if no line information is available (for example, HasLineInfo returns false).
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets or sets the writer's character array pool.
+
+
+
+
+ Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented .
+
+
+
+
+ Gets or sets which character to use to quote attribute values.
+
+
+
+
+ Gets or sets which character to use for indenting when is set to Formatting.Indented .
+
+
+
+
+ Gets or sets a value indicating whether object names will be surrounded with quotes.
+
+
+
+
+ Creates an instance of the JsonWriter class using the specified .
+
+ The TextWriter to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
+
+
+
+
+ Closes this stream and the underlying stream.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes out a comment /*...*/
containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes out the given white space.
+
+ The string of white space characters.
+
+
+
+ Specifies the type of JSON token.
+
+
+
+
+ This is returned by the if a method has not been called.
+
+
+
+
+ An object start token.
+
+
+
+
+ An array start token.
+
+
+
+
+ A constructor start token.
+
+
+
+
+ An object property name.
+
+
+
+
+ A comment.
+
+
+
+
+ Raw JSON.
+
+
+
+
+ An integer.
+
+
+
+
+ A float.
+
+
+
+
+ A string.
+
+
+
+
+ A boolean.
+
+
+
+
+ A null token.
+
+
+
+
+ An undefined token.
+
+
+
+
+ An object end token.
+
+
+
+
+ An array end token.
+
+
+
+
+ A constructor end token.
+
+
+
+
+ A Date.
+
+
+
+
+ Byte data.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets or sets a value indicating whether the underlying stream or
+ should be closed when the writer is closed.
+
+
+ true to close the underlying stream or when
+ the writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets the top.
+
+ The top.
+
+
+
+ Gets the state of the writer.
+
+
+
+
+ Gets the path of the writer.
+
+
+
+
+ Indicates how JSON text output is formatted.
+
+
+
+
+ Get or set how dates are written to JSON text.
+
+
+
+
+ Get or set how time zones are handling when writing JSON text.
+
+
+
+
+ Get or set how strings are escaped when writing JSON text.
+
+
+
+
+ Get or set how special floating point numbers, e.g. ,
+ and ,
+ are written to JSON text.
+
+
+
+
+ Get or set how and values are formatting when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when writing JSON. Defaults to .
+
+
+
+
+ Creates an instance of the JsonWriter class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
+
+
+
+
+ Closes this stream and the underlying stream.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the end of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the end of an array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end constructor.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes the end of the current JSON object or array.
+
+
+
+
+ Writes the current token and its children.
+
+ The to read the token from.
+
+
+
+ Writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+
+
+
+ Writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ A null value can be passed to the method for token's that don't have a value, e.g. .
+
+
+
+ Writes the token.
+
+ The to write.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes out a comment /*...*/
containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes out the given white space.
+
+ The string of white space characters.
+
+
+
+ Releases unmanaged and - optionally - managed resources
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Sets the state of the JsonWriter,
+
+ The JsonToken being written.
+ The value being written.
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Specifies how JSON comments are handled when loading JSON.
+
+
+
+
+ Ignore comments.
+
+
+
+
+ Load comments as a with type .
+
+
+
+
+ Specifies how line information is handled when loading JSON.
+
+
+
+
+ Ignore line information.
+
+
+
+
+ Load line information.
+
+
+
+
+ Contains the LINQ to JSON extension methods.
+
+
+
+
+ Returns a collection of tokens that contains the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the descendants of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, and the descendants of every token in the source collection.
+
+
+
+ Returns a collection of child properties of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the properties of every object in the source collection.
+
+
+
+ Returns a collection of child values of every object in the source collection with the given key.
+
+ An of that contains the source collection.
+ The token key.
+ An of that contains the values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of child values of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child values of every object in the source collection with the given key.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ The token key.
+ An that contains the converted values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of converted child values of every object in the source collection.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Converts the value.
+
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Converts the value.
+
+ The source collection type.
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Returns a collection of child tokens of every array in the source collection.
+
+ The source collection type.
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child tokens of every array in the source collection.
+
+ An of that contains the source collection.
+ The type to convert the values to.
+ The source collection type.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Returns the input typed as .
+
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Returns the input typed as .
+
+ The source collection type.
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Represents a collection of objects.
+
+ The type of token
+
+
+
+ Gets the with the specified key.
+
+
+
+
+
+ Represents a JSON array.
+
+
+
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the at the specified index.
+
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+
+ is not a valid index in the .
+ The is read-only.
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+
+ is not a valid index in the .
+ The is read-only.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+ The is read-only.
+
+
+
+ Removes all items from the .
+
+ The is read-only.
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies to.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+ The is read-only.
+
+
+
+ Represents a JSON constructor.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets or sets the name of this constructor.
+
+ The constructor name.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ The constructor name.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a token that can contain other tokens.
+
+
+
+
+ Occurs when the items list of the collection has changed, or the collection is reset.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false .
+
+
+
+
+ Get the first child token of this token.
+
+
+ A containing the first child token of the .
+
+
+
+
+ Get the last child token of this token.
+
+
+ A containing the last child token of the .
+
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+
+ An of containing the child tokens of this , in document order.
+
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+
+ A containing the child values of this , in document order.
+
+
+
+
+ Returns a collection of the descendant tokens for this token in document order.
+
+ An containing the descendant tokens of the .
+
+
+
+ Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.
+
+ An containing this token, and all the descendant tokens of the .
+
+
+
+ Adds the specified content as children of this .
+
+ The content to be added.
+
+
+
+ Adds the specified content as the first children of this .
+
+ The content to be added.
+
+
+
+ Creates an that can be used to add tokens to the .
+
+ An that is ready to have content written to it.
+
+
+
+ Replaces the children nodes of this token with the specified content.
+
+ The content.
+
+
+
+ Removes the child nodes from this token.
+
+
+
+
+ Merge the specified content into this .
+
+ The content to be merged.
+
+
+
+ Merge the specified content into this using .
+
+ The content to be merged.
+ The used to merge the content.
+
+
+
+ Gets the count of child JSON tokens.
+
+ The count of child JSON tokens
+
+
+
+ Represents a collection of objects.
+
+ The type of token
+
+
+
+ An empty collection of objects.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The enumerable.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Gets the with the specified key.
+
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false .
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false .
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Represents a JSON object.
+
+
+
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets an of this object's properties.
+
+ An of this object's properties.
+
+
+
+ Gets a the specified name.
+
+ The property name.
+ A with the specified name or null.
+
+
+
+ Gets an of this object's property values.
+
+ An of this object's property values.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the with the specified property name.
+
+
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified property name.
+
+ Name of the property.
+ The with the specified property name.
+
+
+
+ Gets the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ One of the enumeration values that specifies how the strings will be compared.
+ The with the specified property name.
+
+
+
+ Tries to get the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ The value.
+ One of the enumeration values that specifies how the strings will be compared.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Adds the specified property name.
+
+ Name of the property.
+ The value.
+
+
+
+ Removes the property with the specified name.
+
+ Name of the property.
+ true if item was successfully removed; otherwise, false.
+
+
+
+ Tries the get value.
+
+ Name of the property.
+ The value.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Represents a JSON property.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the property value.
+
+ The property value.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a raw JSON string.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class.
+
+ The raw json.
+
+
+
+ Creates an instance of with the content of the reader's current token.
+
+ The reader.
+ An instance of with the content of the reader's current token.
+
+
+
+ Specifies the settings used when loading JSON.
+
+
+
+
+ Gets or sets how JSON comments are handled when loading JSON.
+
+ The JSON comment handling.
+
+
+
+ Gets or sets how JSON line info is handled when loading JSON.
+
+ The JSON line info handling.
+
+
+
+ Specifies the settings used when merging JSON.
+
+
+
+
+ Gets or sets the method used when merging JSON arrays.
+
+ The method used when merging JSON arrays.
+
+
+
+ Gets or sets how how null value properties are merged.
+
+ How null value properties are merged.
+
+
+
+ Represents an abstract JSON token.
+
+
+
+
+ Gets a comparer that can compare two tokens for value equality.
+
+ A that can compare two nodes for value equality.
+
+
+
+ Gets or sets the parent.
+
+ The parent.
+
+
+
+ Gets the root of this .
+
+ The root of this .
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false .
+
+
+
+
+ Compares the values of two tokens, including the values of all descendant tokens.
+
+ The first to compare.
+ The second to compare.
+ true if the tokens are equal; otherwise false.
+
+
+
+ Gets the next sibling token of this node.
+
+ The that contains the next sibling token.
+
+
+
+ Gets the previous sibling token of this node.
+
+ The that contains the previous sibling token.
+
+
+
+ Gets the path of the JSON token.
+
+
+
+
+ Adds the specified content immediately after this token.
+
+ A content object that contains simple content or a collection of content objects to be added after this token.
+
+
+
+ Adds the specified content immediately before this token.
+
+ A content object that contains simple content or a collection of content objects to be added before this token.
+
+
+
+ Returns a collection of the ancestor tokens of this token.
+
+ A collection of the ancestor tokens of this token.
+
+
+
+ Returns a collection of tokens that contain this token, and the ancestors of this token.
+
+ A collection of tokens that contain this token, and the ancestors of this token.
+
+
+
+ Returns a collection of the sibling tokens after this token, in document order.
+
+ A collection of the sibling tokens after this tokens, in document order.
+
+
+
+ Returns a collection of the sibling tokens before this token, in document order.
+
+ A collection of the sibling tokens before this token, in document order.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets the with the specified key converted to the specified type.
+
+ The type to convert the token to.
+ The token key.
+ The converted token value.
+
+
+
+ Get the first child token of this token.
+
+ A containing the first child token of the .
+
+
+
+ Get the last child token of this token.
+
+ A containing the last child token of the .
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+ An of containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
+
+ The type to filter the child tokens on.
+ A containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+ A containing the child values of this , in document order.
+
+
+
+ Removes this token from its parent.
+
+
+
+
+ Replaces this token with the specified token.
+
+ The value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Returns the indented JSON for this token.
+
+
+ The indented JSON for this token.
+
+
+
+
+ Returns the JSON for this token using the given formatting and converters.
+
+ Indicates how the output is formatted.
+ A collection of which will be used when writing the token.
+ The JSON for this token using the given formatting and converters.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to [].
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from [] to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Creates an for this token.
+
+ An that can be used to read this token and its descendants.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the value of the specified object
+
+
+
+ Creates a from an object using the specified .
+
+ The object that will be used to create .
+ The that will be used when reading the object.
+ A with the value of the specified object
+
+
+
+ Creates the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+
+ An that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ An that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ An that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+
+ An that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A , or null.
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ A .
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ An that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ An that contains the selected elements.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A new instance of the .
+
+
+
+ Adds an object to the annotation list of this .
+
+ The annotation to add.
+
+
+
+ Get the first annotation object of the specified type from this .
+
+ The type of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets the first annotation object of the specified type from this .
+
+ The of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The type of the annotations to retrieve.
+ An that contains the annotations for this .
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The of the annotations to retrieve.
+ An of that contains the annotations that match the specified type for this .
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The type of annotations to remove.
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The of annotations to remove.
+
+
+
+ Compares tokens to determine whether they are equal.
+
+
+
+
+ Determines whether the specified objects are equal.
+
+ The first object of type to compare.
+ The second object of type to compare.
+
+ true if the specified objects are equal; otherwise, false.
+
+
+
+
+ Returns a hash code for the specified object.
+
+ The for which a hash code is to be returned.
+ A hash code for the specified object.
+ The type of is a reference type and is null.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets the at the reader's current position.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+
+
+
+ Reads the next JSON token from the stream.
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Specifies the type of token.
+
+
+
+
+ No token type has been set.
+
+
+
+
+ A JSON object.
+
+
+
+
+ A JSON array.
+
+
+
+
+ A JSON constructor.
+
+
+
+
+ A JSON object property.
+
+
+
+
+ A comment.
+
+
+
+
+ An integer value.
+
+
+
+
+ A float value.
+
+
+
+
+ A string value.
+
+
+
+
+ A boolean value.
+
+
+
+
+ A null value.
+
+
+
+
+ An undefined value.
+
+
+
+
+ A date value.
+
+
+
+
+ A raw JSON value.
+
+
+
+
+ A collection of bytes value.
+
+
+
+
+ A Guid value.
+
+
+
+
+ A Uri value.
+
+
+
+
+ A TimeSpan value.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets the at the writer's current position.
+
+
+
+
+ Gets the token being writen.
+
+ The token being writen.
+
+
+
+ Initializes a new instance of the class writing to the given .
+
+ The container being written to.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
+
+
+
+
+ Closes this stream and the underlying stream.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes out a comment /*...*/
containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Represents a value in JSON (string, integer, date, etc).
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false .
+
+
+
+
+ Creates a comment with the given value.
+
+ The value.
+ A comment with the given value.
+
+
+
+ Creates a string with the given value.
+
+ The value.
+ A string with the given value.
+
+
+
+ Creates a null value.
+
+ A null value.
+
+
+
+ Creates a undefined value.
+
+ A undefined value.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets or sets the underlying token value.
+
+ The underlying token value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+
+ true if the current object is equal to the parameter; otherwise, false.
+
+ An object to compare with this object.
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+ The parameter is null.
+
+
+
+
+ Serves as a hash function for a particular type.
+
+
+ A hash code for the current .
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
+
+ An object to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
+ Value
+ Meaning
+ Less than zero
+ This instance is less than .
+ Zero
+ This instance is equal to .
+ Greater than zero
+ This instance is greater than .
+
+
+ is not the same type as this instance.
+
+
+
+
+ Specifies how JSON arrays are merged together.
+
+
+
+ Concatenate arrays.
+
+
+ Union arrays, skipping items that already exist.
+
+
+ Replace all array items.
+
+
+ Merge array items together, matched by index.
+
+
+
+ Specifies how null value properties are merged.
+
+
+
+
+ The content's null value properties will be ignored during merging.
+
+
+
+
+ The content's null value properties will be merged.
+
+
+
+
+ Specifies the member serialization options for the .
+
+
+
+
+ All public members are serialized by default. Members can be excluded using or .
+ This is the default member serialization mode.
+
+
+
+
+ Only members marked with or are serialized.
+ This member serialization mode can also be set by marking the class with .
+
+
+
+
+ All public and private fields are serialized. Members can be excluded using or .
+ This member serialization mode can also be set by marking the class with
+ and setting IgnoreSerializableAttribute on to false.
+
+
+
+
+ Specifies metadata property handling options for the .
+
+
+
+
+ Read metadata properties located at the start of a JSON object.
+
+
+
+
+ Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance.
+
+
+
+
+ Do not try to read metadata properties.
+
+
+
+
+ Specifies missing member handling options for the .
+
+
+
+
+ Ignore a missing member and do not attempt to deserialize it.
+
+
+
+
+ Throw a when a missing member is encountered during deserialization.
+
+
+
+
+ Specifies null value handling options for the .
+
+
+
+
+
+
+
+
+ Include null values when serializing and deserializing objects.
+
+
+
+
+ Ignore null values when serializing and deserializing objects.
+
+
+
+
+ Specifies how object creation is handled by the .
+
+
+
+
+ Reuse existing objects, create new objects when needed.
+
+
+
+
+ Only reuse existing objects.
+
+
+
+
+ Always create new objects.
+
+
+
+
+ Specifies reference handling options for the .
+ Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement ISerializable.
+
+
+
+
+
+
+
+ Do not preserve references when serializing types.
+
+
+
+
+ Preserve references when serializing into a JSON object structure.
+
+
+
+
+ Preserve references when serializing into a JSON array structure.
+
+
+
+
+ Preserve references when serializing.
+
+
+
+
+ Specifies reference loop handling options for the .
+
+
+
+
+ Throw a when a loop is encountered.
+
+
+
+
+ Ignore loop references and do not serialize.
+
+
+
+
+ Serialize loop references.
+
+
+
+
+ Indicating whether a property is required.
+
+
+
+
+ The property is not required. The default state.
+
+
+
+
+ The property must be defined in JSON but can be a null value.
+
+
+
+
+ The property must be defined in JSON and cannot be a null value.
+
+
+
+
+ The property is not required but it cannot be a null value.
+
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Resolves member mappings for a type, camel casing property names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ The property name camel cased.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Used by to resolves a for a given .
+
+
+
+
+ Gets a value indicating whether members are being get and set using dynamic code generation.
+ This value is determined by the runtime permissions available.
+
+
+ true if using dynamic code generation; otherwise, false .
+
+
+
+
+ Gets or sets a value indicating whether compiler generated members should be serialized.
+
+
+ true if serialized compiler generated members; otherwise, false .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ If set to true the will use a cached shared with other resolvers of the same type.
+ Sharing the cache will significantly improve performance with multiple resolver instances because expensive reflection will only
+ happen once. This setting can cause unexpected behavior if different instances of the resolver are suppose to produce different
+ results. When set to false it is highly recommended to reuse instances with the .
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Gets the serializable members for the type.
+
+ The type to get serializable members for.
+ The serializable members for the type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates the constructor parameters.
+
+ The constructor to create properties for.
+ The type's member properties.
+ Properties for the given .
+
+
+
+ Creates a for the given .
+
+ The matching member property.
+ The constructor parameter.
+ A created for the given .
+
+
+
+ Resolves the default for the contract.
+
+ Type of the object.
+ The contract's default .
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Determines which contract type is created for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates properties for the given .
+
+ The type to create properties for.
+ /// The member serialization mode for the type.
+ Properties for the given .
+
+
+
+ Creates the used by the serializer to get and set values from a member.
+
+ The member.
+ The used by the serializer to get and set values from a member.
+
+
+
+ Creates a for the given .
+
+ The member's parent .
+ The member to create a for.
+ A created for the given .
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ Resolved name of the property.
+
+
+
+ Resolves the key of the dictionary. By default is used to resolve dictionary keys.
+
+ Key of the dictionary.
+ Resolved key of the dictionary.
+
+
+
+ Gets the resolved name of the property.
+
+ Name of the property.
+ Name of the property.
+
+
+
+ The default serialization binder used when resolving and loading classes from type names.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+ The type of the object the formatter creates a new instance of.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Provides information surrounding an error.
+
+
+
+
+ Gets the error.
+
+ The error.
+
+
+
+ Gets the original object that caused the error.
+
+ The original object that caused the error.
+
+
+
+ Gets the member that caused the error.
+
+ The member that caused the error.
+
+
+
+ Gets the path of the JSON location where the error occurred.
+
+ The path of the JSON location where the error occurred.
+
+
+
+ Gets or sets a value indicating whether this is handled.
+
+ true if handled; otherwise, false .
+
+
+
+ Provides data for the Error event.
+
+
+
+
+ Gets the current object the error event is being raised against.
+
+ The current object the error event is being raised against.
+
+
+
+ Gets the error context.
+
+ The error context.
+
+
+
+ Initializes a new instance of the class.
+
+ The current object.
+ The error context.
+
+
+
+ Provides methods to get attributes.
+
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Used by to resolves a for a given .
+
+
+
+
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used to resolve references when serializing and deserializing JSON by the .
+
+
+
+
+ Resolves a reference to its object.
+
+ The serialization context.
+ The reference to resolve.
+ The object that
+
+
+
+ Gets the reference for the sepecified object.
+
+ The serialization context.
+ The object to get a reference for.
+ The reference to the object.
+
+
+
+ Determines whether the specified object is referenced.
+
+ The serialization context.
+ The object to test for a reference.
+
+ true if the specified object is referenced; otherwise, false .
+
+
+
+
+ Adds a reference to the specified object.
+
+ The serialization context.
+ The reference.
+ The object to reference.
+
+
+
+ Represents a trace writer.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of Info
will exclude Verbose
messages and include Info
,
+ Warning
and Error
messages.
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides methods to get and set values.
+
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the of the collection items.
+
+ The of the collection items.
+
+
+
+ Gets a value indicating whether the collection type is a multidimensional array.
+
+ true if the collection type is a multidimensional array; otherwise, false .
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the collection values.
+
+ true if the creator has a parameter with the collection values; otherwise, false .
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the default collection items .
+
+ The converter.
+
+
+
+ Gets or sets a value indicating whether the collection items preserve object references.
+
+ true if collection items preserve object references; otherwise, false .
+
+
+
+ Gets or sets the collection item reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the collection item type name handling.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Handles serialization callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+
+
+
+ Handles serialization error callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+ The error context.
+
+
+
+ Sets extension data for an object during deserialization.
+
+ The object to set extension data on.
+ The extension data key.
+ The extension data value.
+
+
+
+ Gets extension data for an object during serialization.
+
+ The object to set extension data on.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the underlying type for the contract.
+
+ The underlying type for the contract.
+
+
+
+ Gets or sets the type created during deserialization.
+
+ The type created during deserialization.
+
+
+
+ Gets or sets whether this type contract is serialized as a reference.
+
+ Whether this type contract is serialized as a reference.
+
+
+
+ Gets or sets the default for this contract.
+
+ The converter.
+
+
+
+ Gets or sets all methods called immediately after deserialization of the object.
+
+ The methods called immediately after deserialization of the object.
+
+
+
+ Gets or sets all methods called during deserialization of the object.
+
+ The methods called during deserialization of the object.
+
+
+
+ Gets or sets all methods called after serialization of the object graph.
+
+ The methods called after serialization of the object graph.
+
+
+
+ Gets or sets all methods called before serialization of the object.
+
+ The methods called before serialization of the object.
+
+
+
+ Gets or sets all method called when an error is thrown during the serialization of the object.
+
+ The methods called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the method called immediately after deserialization of the object.
+
+ The method called immediately after deserialization of the object.
+
+
+
+ Gets or sets the method called during deserialization of the object.
+
+ The method called during deserialization of the object.
+
+
+
+ Gets or sets the method called after serialization of the object graph.
+
+ The method called after serialization of the object graph.
+
+
+
+ Gets or sets the method called before serialization of the object.
+
+ The method called before serialization of the object.
+
+
+
+ Gets or sets the method called when an error is thrown during the serialization of the object.
+
+ The method called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the default creator method used to create the object.
+
+ The default creator method used to create the object.
+
+
+
+ Gets or sets a value indicating whether the default creator is non public.
+
+ true if the default object creator is non-public; otherwise, false .
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the property name resolver.
+
+ The property name resolver.
+
+
+
+ Gets or sets the dictionary key resolver.
+
+ The dictionary key resolver.
+
+
+
+ Gets the of the dictionary keys.
+
+ The of the dictionary keys.
+
+
+
+ Gets the of the dictionary values.
+
+ The of the dictionary values.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the dictionary values.
+
+ true if the creator has a parameter with the dictionary values; otherwise, false .
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets or sets the property name resolver.
+
+ The property name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object member serialization.
+
+ The member object serialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets the constructor parameters required for any non-default constructor
+
+
+
+
+ Gets a collection of instances that define the parameters used with .
+
+
+
+
+ Gets or sets the override constructor used to create the object.
+ This is set when a constructor is marked up using the
+ JsonConstructor attribute.
+
+ The override constructor.
+
+
+
+ Gets or sets the parametrized constructor used to create the object.
+
+ The parametrized constructor.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+ This function is called with a collection of arguments which are defined by the collection.
+
+ The function used to create the object.
+
+
+
+ Gets or sets the extension data setter.
+
+
+
+
+ Gets or sets the extension data getter.
+
+
+
+
+ Gets or sets the extension data value type.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Maps a JSON property to a .NET member or constructor parameter.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the type that declared this property.
+
+ The type that declared this property.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets the name of the underlying member or parameter.
+
+ The name of the underlying member or parameter.
+
+
+
+ Gets the that will get and set the during serialization.
+
+ The that will get and set the during serialization.
+
+
+
+ Gets or sets the for this property.
+
+ The for this property.
+
+
+
+ Gets or sets the type of the property.
+
+ The type of the property.
+
+
+
+ Gets or sets the for the property.
+ If set this converter takes presidence over the contract converter for the property type.
+
+ The converter.
+
+
+
+ Gets or sets the member converter.
+
+ The member converter.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false .
+
+
+
+ Gets or sets a value indicating whether this is readable.
+
+ true if readable; otherwise, false .
+
+
+
+ Gets or sets a value indicating whether this is writable.
+
+ true if writable; otherwise, false .
+
+
+
+ Gets or sets a value indicating whether this has a member attribute.
+
+ true if has a member attribute; otherwise, false .
+
+
+
+ Gets the default value.
+
+ The default value.
+
+
+
+ Gets or sets a value indicating whether this is required.
+
+ A value indicating whether this is required.
+
+
+
+ Gets or sets a value indicating whether this property preserves object references.
+
+
+ true if this instance is reference; otherwise, false .
+
+
+
+
+ Gets or sets the property null value handling.
+
+ The null value handling.
+
+
+
+ Gets or sets the property default value handling.
+
+ The default value handling.
+
+
+
+ Gets or sets the property reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the property object creation handling.
+
+ The object creation handling.
+
+
+
+ Gets or sets or sets the type name handling.
+
+ The type name handling.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialize.
+
+ A predicate used to determine whether the property should be serialize.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be deserialized.
+
+ A predicate used to determine whether the property should be deserialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets an action used to set whether the property has been deserialized.
+
+ An action used to set whether the property has been deserialized.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Gets or sets the the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets the the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ A collection of objects.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ When implemented in a derived class, extracts the key from the specified element.
+
+ The element from which to extract the key.
+ The key for the specified element.
+
+
+
+ Adds a object.
+
+ The property to add to the collection.
+
+
+
+ Gets the closest matching object.
+ First attempts to get an exact case match of propertyName and then
+ a case insensitive match.
+
+ Name of the property.
+ A matching property if found.
+
+
+
+ Gets a property by property name.
+
+ The name of the property to get.
+ Type property name string comparison.
+ A matching property if found.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Lookup and create an instance of the JsonConverter type described by the argument.
+
+ The JsonConverter type to create.
+ Optional arguments to pass to an initializing constructor of the JsonConverter.
+ If null, the default constructor is used.
+
+
+
+ Create a factory function that can be used to create instances of a JsonConverter described by the
+ argument type. The returned function can then be used to either invoke the converter's default ctor, or any
+ parameterized constructors by way of an object array.
+
+
+
+
+ Represents a trace writer that writes to memory. When the trace message limit is
+ reached then old trace messages will be removed as new messages are added.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of Info
will exclude Verbose
messages and include Info
,
+ Warning
and Error
messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Returns an enumeration of the most recent trace messages.
+
+ An enumeration of the most recent trace messages.
+
+
+
+ Returns a of the most recent trace messages.
+
+
+ A of the most recent trace messages.
+
+
+
+
+ Represents a method that constructs an object.
+
+ The object type to create.
+
+
+
+ When applied to a method, specifies that the method is called when an error occurs serializing an object.
+
+
+
+
+ Provides methods to get attributes from a , , or .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to get attributes for. This parameter should be a , , or .
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Get and set values for a using reflection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Specifies how strings are escaped when writing JSON text.
+
+
+
+
+ Only control characters (e.g. newline) are escaped.
+
+
+
+
+ All non-ASCII and control characters (e.g. newline) are escaped.
+
+
+
+
+ HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped.
+
+
+
+
+ Specifies what messages to output for the class.
+
+
+
+
+ Output no tracing and debugging messages.
+
+
+
+
+ Output error-handling messages.
+
+
+
+
+ Output warnings and error-handling messages.
+
+
+
+
+ Output informational messages, warnings, and error-handling messages.
+
+
+
+
+ Output all debugging and tracing messages.
+
+
+
+
+ Specifies type name handling options for the .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than TypeNameHandling.None .
+
+
+
+
+ Do not include the .NET type name when serializing types.
+
+
+
+
+ Include the .NET type name when serializing into a JSON object structure.
+
+
+
+
+ Include the .NET type name when serializing into a JSON array structure.
+
+
+
+
+ Always include the .NET type name when serializing.
+
+
+
+
+ Include the .NET type name when the type of the object being serialized is not the same as its declared type.
+
+
+
+
+ Determines whether the collection is null or empty.
+
+ The collection.
+
+ true if the collection is null or empty; otherwise, false .
+
+
+
+
+ Adds the elements of the specified collection to the specified generic IList.
+
+ The list to add to.
+ The collection of elements to add.
+
+
+
+ Converts the value to the specified type. If the value is unable to be converted, the
+ value is checked whether it assignable to the specified type.
+
+ The value to convert.
+ The culture to use when converting.
+ The type to convert or cast the value to.
+
+ The converted type. If conversion was unsuccessful, the initial value
+ is returned if assignable to the target type.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic that returns a result
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Returns a Restrictions object which includes our current restrictions merged
+ with a restriction limiting our type
+
+
+
+
+ Gets a dictionary of the names and values of an Enum type.
+
+
+
+
+
+ Gets a dictionary of the names and values of an Enum type.
+
+ The enum type to get names and values for.
+
+
+
+
+ Gets the type of the typed collection's items.
+
+ The type.
+ The type of the typed collection's items.
+
+
+
+ Gets the member's underlying type.
+
+ The member.
+ The underlying type of the member.
+
+
+
+ Determines whether the member is an indexed property.
+
+ The member.
+
+ true if the member is an indexed property; otherwise, false .
+
+
+
+
+ Determines whether the property is an indexed property.
+
+ The property.
+
+ true if the property is an indexed property; otherwise, false .
+
+
+
+
+ Gets the member's value on the object.
+
+ The member.
+ The target object.
+ The member's value on the object.
+
+
+
+ Sets the member's value on the target object.
+
+ The member.
+ The target.
+ The value.
+
+
+
+ Determines whether the specified MemberInfo can be read.
+
+ The MemberInfo to determine whether can be read.
+ /// if set to true then allow the member to be gotten non-publicly.
+
+ true if the specified MemberInfo can be read; otherwise, false .
+
+
+
+
+ Determines whether the specified MemberInfo can be set.
+
+ The MemberInfo to determine whether can be set.
+ if set to true then allow the member to be set non-publicly.
+ if set to true then allow the member to be set if read-only.
+
+ true if the specified MemberInfo can be set; otherwise, false .
+
+
+
+
+ Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer.
+
+
+
+
+ Determines whether the string is all white space. Empty string will return false.
+
+ The string to test whether it is all white space.
+
+ true if the string is all white space; otherwise, false .
+
+
+
+
+ Nulls an empty string.
+
+ The string.
+ Null if the string was null, otherwise the string unchanged.
+
+
+
+ Specifies the state of the .
+
+
+
+
+ An exception has been thrown, which has left the in an invalid state.
+ You may call the method to put the in the Closed state.
+ Any other method calls results in an being thrown.
+
+
+
+
+ The method has been called.
+
+
+
+
+ An object is being written.
+
+
+
+
+ A array is being written.
+
+
+
+
+ A constructor is being written.
+
+
+
+
+ A property is being written.
+
+
+
+
+ A write method has not been called.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the Assembly class is used to load the assembly.
+
+
+
+
diff --git a/Assets/JsonDotNet/Assemblies/Windows/Newtonsoft.Json.XML.meta b/Assets/JsonDotNet/Assemblies/Windows/Newtonsoft.Json.XML.meta
new file mode 100644
index 0000000..c4619d0
--- /dev/null
+++ b/Assets/JsonDotNet/Assemblies/Windows/Newtonsoft.Json.XML.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 36f7323c55864364d8bb88c736e4bca6
+timeCreated: 1466788355
+licenseType: Store
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/JsonDotNet/Assemblies/Windows/Newtonsoft.Json.dll b/Assets/JsonDotNet/Assemblies/Windows/Newtonsoft.Json.dll
new file mode 100644
index 0000000..05a0d4b
Binary files /dev/null and b/Assets/JsonDotNet/Assemblies/Windows/Newtonsoft.Json.dll differ
diff --git a/Assets/JsonDotNet/Assemblies/Windows/Newtonsoft.Json.dll.meta b/Assets/JsonDotNet/Assemblies/Windows/Newtonsoft.Json.dll.meta
new file mode 100644
index 0000000..b91baae
--- /dev/null
+++ b/Assets/JsonDotNet/Assemblies/Windows/Newtonsoft.Json.dll.meta
@@ -0,0 +1,67 @@
+fileFormatVersion: 2
+guid: 9b6ba260dada0ea4a871a42011f8b87d
+timeCreated: 1466788355
+licenseType: Store
+PluginImporter:
+ serializedVersion: 1
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ platformData:
+ Android:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ Any:
+ enabled: 0
+ settings: {}
+ Editor:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ DefaultValueInitialized: true
+ OS: AnyOS
+ Linux:
+ enabled: 0
+ settings:
+ CPU: x86
+ Linux64:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ OSXIntel:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ OSXIntel64:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ SamsungTV:
+ enabled: 0
+ settings:
+ STV_MODEL: STANDARD_13
+ Win:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ Win64:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ WindowsStoreApps:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ DontProcess: False
+ PlaceholderPath: Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.dll
+ SDK: AnySDK
+ ScriptingBackend: DotNet
+ iOS:
+ enabled: 0
+ settings:
+ CompileFlags:
+ FrameworkDependencies:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/JsonDotNet/Documentation.meta b/Assets/JsonDotNet/Documentation.meta
new file mode 100644
index 0000000..cda8075
--- /dev/null
+++ b/Assets/JsonDotNet/Documentation.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 76f828f47ce26cc43991113c6a39dbbf
+folderAsset: yes
+timeCreated: 1466010535
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/JsonDotNet/Documentation/Json Net for Unity 2.0.1.pdf b/Assets/JsonDotNet/Documentation/Json Net for Unity 2.0.1.pdf
new file mode 100644
index 0000000..4f7651d
Binary files /dev/null and b/Assets/JsonDotNet/Documentation/Json Net for Unity 2.0.1.pdf differ
diff --git a/Assets/JsonDotNet/Documentation/Json Net for Unity 2.0.1.pdf.meta b/Assets/JsonDotNet/Documentation/Json Net for Unity 2.0.1.pdf.meta
new file mode 100644
index 0000000..e5d0257
--- /dev/null
+++ b/Assets/JsonDotNet/Documentation/Json Net for Unity 2.0.1.pdf.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4e7d9a07cc3f02a41a575406e7230846
+timeCreated: 1466788421
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/JsonDotNet/JsonDotNet201Source.zip b/Assets/JsonDotNet/JsonDotNet201Source.zip
new file mode 100644
index 0000000..23b699a
Binary files /dev/null and b/Assets/JsonDotNet/JsonDotNet201Source.zip differ
diff --git a/Assets/JsonDotNet/JsonDotNet201Source.zip.meta b/Assets/JsonDotNet/JsonDotNet201Source.zip.meta
new file mode 100644
index 0000000..c846be6
--- /dev/null
+++ b/Assets/JsonDotNet/JsonDotNet201Source.zip.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9a6f8c7c1ea72ce46831c5e1b6150d0c
+timeCreated: 1466790933
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/JsonDotNet/link.xml b/Assets/JsonDotNet/link.xml
new file mode 100644
index 0000000..cac3e06
--- /dev/null
+++ b/Assets/JsonDotNet/link.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assets/JsonDotNet/link.xml.meta b/Assets/JsonDotNet/link.xml.meta
new file mode 100644
index 0000000..1e0e273
--- /dev/null
+++ b/Assets/JsonDotNet/link.xml.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 06314f49bdda26043963578d60a0a7ee
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/OVRInputSelection/Materials/SelectionRay.mat b/Assets/OVRInputSelection/Materials/SelectionRay.mat
index e0fe72a..355e2fb 100644
--- a/Assets/OVRInputSelection/Materials/SelectionRay.mat
+++ b/Assets/OVRInputSelection/Materials/SelectionRay.mat
@@ -72,5 +72,5 @@ Material:
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- - _Color: {r: 1, g: 0, b: 1, a: 1}
+ - _Color: {r: 0, g: 1, b: 0.9582815, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
diff --git a/Assets/Oculus/AudioManager.meta b/Assets/Oculus/AudioManager.meta
new file mode 100644
index 0000000..a774a14
--- /dev/null
+++ b/Assets/Oculus/AudioManager.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: e8bd6fc3bb11b734ebab29d20ce38dbe
+folderAsset: yes
+timeCreated: 1538788975
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Audio.meta b/Assets/Oculus/AudioManager/Audio.meta
new file mode 100644
index 0000000..9b8e75b
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Audio.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 29ab7e927676ef74a93aeedf4146f1ac
+folderAsset: yes
+timeCreated: 1470780399
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Audio/TestSounds.meta b/Assets/Oculus/AudioManager/Audio/TestSounds.meta
new file mode 100644
index 0000000..be98549
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Audio/TestSounds.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 180c8a539f95cce428f820b0ba392c1f
+folderAsset: yes
+timeCreated: 1468506676
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01.wav b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01.wav
new file mode 100644
index 0000000..cf2a6e9
Binary files /dev/null and b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01.wav differ
diff --git a/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01.wav.meta b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01.wav.meta
new file mode 100644
index 0000000..bd6540e
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01.wav.meta
@@ -0,0 +1,22 @@
+fileFormatVersion: 2
+guid: 485ac48a563e2bf44bb4de7ead5a1f68
+timeCreated: 1461716881
+licenseType: Store
+AudioImporter:
+ serializedVersion: 6
+ defaultSettings:
+ loadType: 0
+ sampleRateSetting: 0
+ sampleRateOverride: 44100
+ compressionFormat: 1
+ quality: 1
+ conversionMode: 0
+ platformSettingOverrides: {}
+ forceToMono: 0
+ normalize: 1
+ preloadAudioData: 1
+ loadInBackground: 0
+ 3D: 1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01a.wav b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01a.wav
new file mode 100644
index 0000000..5202abd
Binary files /dev/null and b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01a.wav differ
diff --git a/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01a.wav.meta b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01a.wav.meta
new file mode 100644
index 0000000..97e8d37
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01a.wav.meta
@@ -0,0 +1,22 @@
+fileFormatVersion: 2
+guid: d3994560fb567c34a821fd9355c10eef
+timeCreated: 1461716882
+licenseType: Store
+AudioImporter:
+ serializedVersion: 6
+ defaultSettings:
+ loadType: 0
+ sampleRateSetting: 0
+ sampleRateOverride: 44100
+ compressionFormat: 1
+ quality: 1
+ conversionMode: 0
+ platformSettingOverrides: {}
+ forceToMono: 0
+ normalize: 1
+ preloadAudioData: 1
+ loadInBackground: 0
+ 3D: 1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01.wav b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01.wav
new file mode 100644
index 0000000..343ccb6
Binary files /dev/null and b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01.wav differ
diff --git a/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01.wav.meta b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01.wav.meta
new file mode 100644
index 0000000..d45cc67
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01.wav.meta
@@ -0,0 +1,22 @@
+fileFormatVersion: 2
+guid: 7000b4d67a1320940b363f3cf891dfff
+timeCreated: 1461716881
+licenseType: Store
+AudioImporter:
+ serializedVersion: 6
+ defaultSettings:
+ loadType: 0
+ sampleRateSetting: 0
+ sampleRateOverride: 44100
+ compressionFormat: 1
+ quality: 1
+ conversionMode: 0
+ platformSettingOverrides: {}
+ forceToMono: 0
+ normalize: 1
+ preloadAudioData: 1
+ loadInBackground: 0
+ 3D: 1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01a.wav b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01a.wav
new file mode 100644
index 0000000..aa7e7d1
Binary files /dev/null and b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01a.wav differ
diff --git a/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01a.wav.meta b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01a.wav.meta
new file mode 100644
index 0000000..f9e7fdb
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01a.wav.meta
@@ -0,0 +1,22 @@
+fileFormatVersion: 2
+guid: 8198ccc08475a764daaf226b841a55f1
+timeCreated: 1461716882
+licenseType: Store
+AudioImporter:
+ serializedVersion: 6
+ defaultSettings:
+ loadType: 0
+ sampleRateSetting: 0
+ sampleRateOverride: 44100
+ compressionFormat: 1
+ quality: 1
+ conversionMode: 0
+ platformSettingOverrides: {}
+ forceToMono: 0
+ normalize: 1
+ preloadAudioData: 1
+ loadInBackground: 0
+ 3D: 1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Scenes.meta b/Assets/Oculus/AudioManager/Scenes.meta
new file mode 100644
index 0000000..9823fcc
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scenes.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 6d597fe114807b54a99033a3dae9ce0d
+folderAsset: yes
+timeCreated: 1470780399
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Scenes/Scripts.meta b/Assets/Oculus/AudioManager/Scenes/Scripts.meta
new file mode 100644
index 0000000..c1dd9fd
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scenes/Scripts.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 7ee6cbebddf12044c95f9d6eb6e40823
+folderAsset: yes
+timeCreated: 1470780399
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Scenes/Scripts/TestScript.cs b/Assets/Oculus/AudioManager/Scenes/Scripts/TestScript.cs
new file mode 100644
index 0000000..d644397
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scenes/Scripts/TestScript.cs
@@ -0,0 +1,31 @@
+using UnityEngine;
+using System.Collections;
+
+public class TestScript : MonoBehaviour {
+
+ [InspectorNote( "Sound Setup", "Press '1' to play testSound1 and '2' to play testSound2")]
+
+ public SoundFXRef testSound1;
+ public SoundFXRef testSound2;
+
+ // Use this for initialization
+ void Start () {
+
+ }
+
+
+ // Update is called once per frame
+ void Update ()
+ {
+ // use attached game object location
+ if ( Input.GetKeyDown( KeyCode.Alpha1 ) )
+ {
+ testSound1.PlaySoundAt( transform.position );
+ }
+
+ // hard code information
+ if ( Input.GetKeyDown( KeyCode.Alpha2 ) ) {
+ testSound2.PlaySoundAt( new Vector3( 5.0f, 0.0f, 0.0f ) );
+ }
+ }
+}
diff --git a/Assets/Oculus/AudioManager/Scenes/Scripts/TestScript.cs.meta b/Assets/Oculus/AudioManager/Scenes/Scripts/TestScript.cs.meta
new file mode 100644
index 0000000..e1faa97
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scenes/Scripts/TestScript.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: cfae243ecd01edd49bd439c56a8b18cf
+timeCreated: 1468506975
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Scenes/Test.unity b/Assets/Oculus/AudioManager/Scenes/Test.unity
new file mode 100644
index 0000000..a88e0f8
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scenes/Test.unity
@@ -0,0 +1,434 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 8
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 3
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_TemporalCoherenceThreshold: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 0
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 8
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_TextureWidth: 1024
+ m_TextureHeight: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 0
+ m_CompAOExponentDirect: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 1024
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 1
+ m_BakeBackend: 0
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 500
+ m_PVRBounces: 2
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVRFilteringMode: 0
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_LightingDataAsset: {fileID: 0}
+ m_ShadowMaskMode: 2
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &767466533
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 767466535}
+ - component: {fileID: 767466534}
+ m_Layer: 0
+ m_Name: AudioManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &767466534
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 767466533}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 6d1d30b41806244fca035fdae2896fb7, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ makePersistent: 1
+ enableSpatializedAudio: 1
+ enableSpatializedFastOverride: 0
+ audioMixer: {fileID: 0}
+ defaultMixerGroup: {fileID: 24300001, guid: 323417d454569d94fa01d511f6eb44d9, type: 2}
+ reservedMixerGroup: {fileID: 0}
+ voiceChatMixerGroup: {fileID: 0}
+ verboseLogging: 0
+ maxSoundEmitters: 32
+ volumeSoundFX: 1
+ soundFxFadeSecs: 1
+ audioMinFallOffDistance: 1
+ audioMaxFallOffDistance: 25
+ soundGroupings:
+ - name: Test Group
+ soundList:
+ - name: TestSound1
+ playback: 0
+ volume: 1
+ pitchVariance: {x: 0.95, y: 1.05}
+ falloffDistance: {x: 1, y: 25}
+ falloffCurve: 2
+ volumeFalloffCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1.0044228
+ inSlope: -1.9459304
+ outSlope: -1.9459304
+ tangentMode: 0
+ - serializedVersion: 2
+ time: 0.27001944
+ value: 0.24837627
+ inSlope: -1.3226271
+ outSlope: -1.3226271
+ tangentMode: 0
+ - serializedVersion: 2
+ time: 0.99744946
+ value: -0.0020017216
+ inSlope: -0.42040923
+ outSlope: -0.42040923
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ reverbZoneMix:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1.0044228
+ inSlope: -1.9459304
+ outSlope: -1.9459304
+ tangentMode: 0
+ - serializedVersion: 2
+ time: 0.36357749
+ value: 0.4567863
+ inSlope: -1.3226271
+ outSlope: -1.3226271
+ tangentMode: 0
+ - serializedVersion: 2
+ time: 0.99594045
+ value: 0.19572063
+ inSlope: -0.107312
+ outSlope: -0.107312
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ spread: 0
+ pctChanceToPlay: 1
+ priority: 0
+ delay: {x: 0, y: 0}
+ looping: 0
+ ospProps:
+ enableSpatialization: 1
+ useFastOverride: 1
+ gain: 0
+ enableInvSquare: 1
+ volumetric: 0
+ invSquareFalloff: {x: 1, y: 250}
+ soundClips:
+ - {fileID: 8300000, guid: 7000b4d67a1320940b363f3cf891dfff, type: 3}
+ - {fileID: 8300000, guid: 8198ccc08475a764daaf226b841a55f1, type: 3}
+ visibilityToggle: 0
+ - name: TestSound2
+ playback: 0
+ volume: 1
+ pitchVariance: {x: 0.79999995, y: 1.25}
+ falloffDistance: {x: 1, y: 25}
+ falloffCurve: 1
+ volumeFalloffCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ - serializedVersion: 2
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ reverbZoneMix:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ - serializedVersion: 2
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ spread: 0
+ pctChanceToPlay: 1
+ priority: 0
+ delay: {x: 0, y: 0}
+ looping: 0
+ ospProps:
+ enableSpatialization: 1
+ useFastOverride: 0
+ gain: 0
+ enableInvSquare: 0
+ volumetric: 0
+ invSquareFalloff: {x: 1, y: 25}
+ soundClips:
+ - {fileID: 8300000, guid: 485ac48a563e2bf44bb4de7ead5a1f68, type: 3}
+ - {fileID: 8300000, guid: d3994560fb567c34a821fd9355c10eef, type: 3}
+ visibilityToggle: 0
+ mixerGroup: {fileID: 24300001, guid: 1dd706bb85d8aef4e83a6229dbd62c36, type: 2}
+ maxPlayingSounds: 0
+ preloadAudio: 0
+ volumeOverride: 1
+ playingSoundCount: 0
+--- !u!4 &767466535
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 767466533}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1050355579
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1050355581}
+ - component: {fileID: 1050355580}
+ m_Layer: 0
+ m_Name: TestScript
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1050355580
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1050355579}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfae243ecd01edd49bd439c56a8b18cf, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ testSound1:
+ soundFXName: TestSound1
+ testSound2:
+ soundFXName: TestSound2
+--- !u!4 &1050355581
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1050355579}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2106254871
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 2106254876}
+ - component: {fileID: 2106254875}
+ - component: {fileID: 2106254874}
+ - component: {fileID: 2106254873}
+ - component: {fileID: 2106254872}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!81 &2106254872
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2106254871}
+ m_Enabled: 1
+--- !u!124 &2106254873
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2106254871}
+ m_Enabled: 1
+--- !u!92 &2106254874
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2106254871}
+ m_Enabled: 1
+--- !u!20 &2106254875
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2106254871}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 1
+ orthographic size: 5
+ m_Depth: -1
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 0
+ m_AllowMSAA: 1
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+ m_StereoMirrorMode: 0
+--- !u!4 &2106254876
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2106254871}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -10}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/Assets/Oculus/AudioManager/Scenes/Test.unity.meta b/Assets/Oculus/AudioManager/Scenes/Test.unity.meta
new file mode 100644
index 0000000..b8047e1
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scenes/Test.unity.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 600e5d49b0a68254286400e32c53addc
+timeCreated: 1468506358
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Scripts.meta b/Assets/Oculus/AudioManager/Scripts.meta
new file mode 100644
index 0000000..7c41c17
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 25be027379f7fce4d97ba2bcaf313019
+folderAsset: yes
+timeCreated: 1470780399
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio.meta b/Assets/Oculus/AudioManager/Scripts/Audio.meta
new file mode 100644
index 0000000..3a66e26
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: b8c0d722519c64144a78f8fc99cd40b5
+folderAsset: yes
+timeCreated: 1468505670
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/AmbienceEmitter.cs b/Assets/Oculus/AudioManager/Scripts/Audio/AmbienceEmitter.cs
new file mode 100644
index 0000000..0017fbd
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/AmbienceEmitter.cs
@@ -0,0 +1,113 @@
+using UnityEngine;
+using System.Collections;
+
+/*
+-----------------------
+
+ AmbienceEmitter()
+
+-----------------------
+*/
+public class AmbienceEmitter : MonoBehaviour {
+
+ public SoundFXRef[] ambientSounds = new SoundFXRef[0];
+ public bool autoActivate = true;
+ [Tooltip("Automatically play the sound randomly again when checked. Should be OFF for looping sounds")]
+ public bool autoRetrigger = true;
+ [MinMax( 2.0f, 4.0f, 0.1f, 10.0f )]
+ public Vector2 randomRetriggerDelaySecs = new Vector2( 2.0f, 4.0f );
+ [Tooltip( "If defined, the sounds will randomly play from these transform positions, otherwise the sound will play from this transform" )]
+ public Transform[] playPositions = new Transform[0];
+ private bool activated = false;
+ private int playingIdx = -1;
+ private float nextPlayTime = 0.0f;
+ private float fadeTime = 0.25f;
+ private int lastPosIdx = -1;
+
+ /*
+ -----------------------
+ Awake()
+ -----------------------
+ */
+ void Awake() {
+ if ( autoActivate ) {
+ activated = true;
+ nextPlayTime = Time.time + Random.Range( randomRetriggerDelaySecs.x, randomRetriggerDelaySecs.y );
+ }
+ // verify all the play positions are valid
+ foreach ( Transform t in playPositions ) {
+ if ( t == null ) {
+ Debug.LogWarning( "[AmbienceEmitter] Invalid play positions in " + name );
+ playPositions = new Transform[0];
+ break;
+ }
+ }
+ }
+
+ /*
+ -----------------------
+ Update()
+ -----------------------
+ */
+ void Update() {
+ if ( activated ) {
+ if ( ( playingIdx == -1 ) || autoRetrigger ) {
+ if ( Time.time >= nextPlayTime ) {
+ Play();
+ if ( !autoRetrigger ) {
+ activated = false;
+ }
+ }
+ }
+ }
+ }
+
+ /*
+ -----------------------
+ OnTriggerEnter()
+ -----------------------
+ */
+ public void OnTriggerEnter( Collider col ) {
+ activated = !activated;
+ }
+
+ /*
+ -----------------------
+ Play()
+ -----------------------
+ */
+ public void Play() {
+ Transform transformToPlayFrom = transform;
+ if ( playPositions.Length > 0 ) {
+ int idx = Random.Range( 0, playPositions.Length );
+ while ( ( playPositions.Length > 1 ) && ( idx == lastPosIdx ) ) {
+ idx = Random.Range( 0, playPositions.Length );
+ }
+ transformToPlayFrom = playPositions[idx];
+ lastPosIdx = idx;
+ }
+ playingIdx = ambientSounds[Random.Range(0, ambientSounds.Length)].PlaySoundAt( transformToPlayFrom.position );
+ if ( playingIdx != -1 ) {
+ AudioManager.FadeInSound( playingIdx, fadeTime );
+ nextPlayTime = Time.time + Random.Range( randomRetriggerDelaySecs.x, randomRetriggerDelaySecs.y );
+ }
+ }
+
+ /*
+ -----------------------
+ EnableEmitter()
+ -----------------------
+ */
+ public void EnableEmitter( bool enable ) {
+ activated = enable;
+ if ( enable ) {
+ Play();
+ } else {
+ if ( playingIdx != -1 ) {
+ AudioManager.FadeOutSound( playingIdx, fadeTime );
+ }
+ }
+
+ }
+
+}
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/AmbienceEmitter.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/AmbienceEmitter.cs.meta
new file mode 100644
index 0000000..e5ecd9b
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/AmbienceEmitter.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c11944691f6b9cf44a391c95cb3f7dea
+timeCreated: 1455050294
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager.cs b/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager.cs
new file mode 100644
index 0000000..f77c3ea
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager.cs
@@ -0,0 +1,425 @@
+using UnityEngine;
+using UnityEngine.Audio;
+using System.Collections;
+using System.Collections.Generic;
+#if UNITY_EDITOR
+using UnityEditor;
+using System;
+using System.Reflection;
+#endif
+
+public enum PreloadSounds {
+ Default, // default unity behavior
+ Preload, // audio clips are forced to preload
+ ManualPreload, // audio clips are forced to not preload, preloading must be done manually
+}
+
+public enum Fade
+{
+ In,
+ Out
+}
+
+[System.Serializable]
+public class SoundGroup {
+ public SoundGroup( string name ) {
+ this.name = name;
+ }
+ public SoundGroup() {
+ mixerGroup = null;
+ maxPlayingSounds = 0;
+ preloadAudio = PreloadSounds.Default;
+ volumeOverride = 1.0f;
+ }
+ public void IncrementPlayCount() {
+ playingSoundCount = Mathf.Clamp( ++playingSoundCount, 0, maxPlayingSounds );
+ }
+ public void DecrementPlayCount() {
+ playingSoundCount = Mathf.Clamp( --playingSoundCount, 0, maxPlayingSounds );
+ }
+ public bool CanPlaySound() {
+ return ( maxPlayingSounds == 0 ) || ( playingSoundCount < maxPlayingSounds );
+ }
+
+ public string name = string.Empty;
+ public SoundFX[] soundList = new SoundFX[0];
+ public AudioMixerGroup mixerGroup = null; // default = AudioManager.defaultMixerGroup
+ [Range(0,64)]
+ public int maxPlayingSounds = 0; // default = 0, unlimited
+ // TODO: this preload behavior is not yet implemented
+ public PreloadSounds preloadAudio = PreloadSounds.Default; // default = true, audio clip data will be preloaded
+ public float volumeOverride = 1.0f; // default = 1.0
+
+ [HideInInspector]
+ public int playingSoundCount = 0;
+}
+
+/*
+-----------------------
+
+ AudioManager
+
+-----------------------
+*/
+public partial class AudioManager : MonoBehaviour {
+
+ [Tooltip("Make the audio manager persistent across all scene loads")]
+ public bool makePersistent = true; // true = don't destroy on load
+ [Tooltip("Enable the OSP audio plugin features")]
+ public bool enableSpatializedAudio = true; // true = enable spatialized audio
+ [Tooltip("Always play spatialized sounds with no reflections (Default)")]
+ public bool enableSpatializedFastOverride = false; // true = disable spatialized reflections override
+ [Tooltip("The audio mixer asset used for snapshot blends, etc.")]
+ public AudioMixer audioMixer = null;
+ [Tooltip( "The audio mixer group used for the pooled emitters" )]
+ public AudioMixerGroup defaultMixerGroup = null;
+ [Tooltip( "The audio mixer group used for the reserved pool emitter" )]
+ public AudioMixerGroup reservedMixerGroup = null;
+ [Tooltip( "The audio mixer group used for voice chat" )]
+ public AudioMixerGroup voiceChatMixerGroup = null;
+ [Tooltip("Log all PlaySound calls to the Unity console")]
+ public bool verboseLogging = false; // true = log all PlaySounds
+ [Tooltip("Maximum sound emitters")]
+ public int maxSoundEmitters = 32; // total number of sound emitters created
+ [Tooltip("Default volume for all sounds modulated by individual sound FX volumes")]
+ public float volumeSoundFX = 1.0f; // user pref: volume of all sound FX
+ [Tooltip("Sound FX fade time")]
+ public float soundFxFadeSecs = 1.0f; // sound FX fade time
+
+ public float audioMinFallOffDistance = 1.0f; // minimum falloff distance
+ public float audioMaxFallOffDistance = 25.0f; // maximum falloff distance
+
+ public SoundGroup[] soundGroupings = new SoundGroup[0];
+
+ private Dictionary soundFXCache = null;
+
+ static private AudioManager theAudioManager = null;
+ static private FastList names = new FastList();
+ static private string[] defaultSound = new string[1] { "Default Sound" };
+ static private SoundFX nullSound = new SoundFX();
+ static private bool hideWarnings = false;
+ static public bool enableSpatialization { get { return ( theAudioManager !=null ) ? theAudioManager.enableSpatializedAudio : false; } }
+
+ static public AudioManager Instance { get { return theAudioManager; } }
+ static public float NearFallOff { get { return theAudioManager.audioMinFallOffDistance; } }
+ static public float FarFallOff { get { return theAudioManager.audioMaxFallOffDistance; } }
+ static public AudioMixerGroup EmitterGroup { get { return theAudioManager.defaultMixerGroup; } }
+ static public AudioMixerGroup ReservedGroup { get { return theAudioManager.reservedMixerGroup; } }
+ static public AudioMixerGroup VoipGroup { get { return theAudioManager.voiceChatMixerGroup; } }
+
+ /*
+ -----------------------
+ Awake()
+ -----------------------
+ */
+ void Awake() {
+ Init();
+ }
+
+ /*
+ -----------------------
+ OnDestroy()
+ -----------------------
+ */
+ void OnDestroy() {
+ // we only want the initialized audio manager instance cleaning up the sound emitters
+ if ( theAudioManager == this ) {
+ if ( soundEmitterParent != null ) {
+ Destroy( soundEmitterParent );
+ }
+ }
+ ///TODO - if you change scenes you'll want to call OnPreSceneLoad to detach the sound emitters
+ ///from anything they might be parented to or they will get destroyed with that object
+ ///there should only be one instance of the AudioManager across the life of the game/app
+ ///GameManager.OnPreSceneLoad -= OnPreSceneLoad;
+ }
+
+ /*
+ -----------------------
+ Init()
+ -----------------------
+ */
+ void Init() {
+ if ( theAudioManager != null ) {
+ if ( Application.isPlaying && ( theAudioManager != this ) ) {
+ enabled = false;
+ }
+ return;
+ }
+ theAudioManager = this;
+
+ ///TODO - if you change scenes you'll want to call OnPreSceneLoad to detach the sound emitters
+ ///from anything they might be parented to or they will get destroyed with that object
+ ///there should only be one instance of the AudioManager across the life of the game/app
+ ///GameManager.OnPreSceneLoad += OnPreSceneLoad;
+
+ // make sure the first one is a null sound
+ nullSound.name = "Default Sound";
+
+ // build the sound FX cache
+ RebuildSoundFXCache();
+
+ // create the sound emitters
+ if ( Application.isPlaying ) {
+ InitializeSoundSystem();
+ if ( makePersistent && ( transform.parent == null ) ) {
+ // don't destroy the audio manager on scene loads
+ DontDestroyOnLoad( gameObject );
+ }
+ }
+
+#if UNITY_EDITOR
+ Debug.Log( "[AudioManager] Initialized..." );
+#endif
+ }
+
+ /*
+ -----------------------
+ Update()
+ -----------------------
+ */
+ void Update() {
+ // update the free and playing lists
+ UpdateFreeEmitters();
+ }
+
+ /*
+ -----------------------
+ RebuildSoundFXCache()
+ -----------------------
+ */
+ void RebuildSoundFXCache() {
+ // build the SoundFX dictionary for quick name lookups
+ int count = 0;
+ for ( int group = 0; group < soundGroupings.Length; group++ ) {
+ count += soundGroupings[group].soundList.Length;
+ }
+ soundFXCache = new Dictionary( count + 1 );
+ // add the null sound
+ soundFXCache.Add( nullSound.name, nullSound );
+ // add the rest
+ for ( int group = 0; group < soundGroupings.Length; group++ ) {
+ for ( int i = 0; i < soundGroupings[group].soundList.Length; i++ ) {
+ if ( soundFXCache.ContainsKey( soundGroupings[group].soundList[i].name ) ) {
+ Debug.LogError( "ERROR: Duplicate Sound FX name in the audio manager: '" + soundGroupings[group].name + "' > '" + soundGroupings[group].soundList[i].name + "'" );
+ } else {
+ soundGroupings[group].soundList[i].Group = soundGroupings[group];
+ soundFXCache.Add( soundGroupings[group].soundList[i].name, soundGroupings[group].soundList[i] );
+ }
+ }
+ soundGroupings[group].playingSoundCount = 0;
+ }
+ }
+
+ /*
+ -----------------------
+ FindSoundFX()
+ -----------------------
+ */
+ static public SoundFX FindSoundFX( string name, bool rebuildCache = false ) {
+#if UNITY_EDITOR
+ if ( theAudioManager == null ) {
+ Debug.LogError( "ERROR: audio manager not yet initialized or created!" + " Time: " + Time.time );
+ return null;
+ }
+#endif
+ if ( string.IsNullOrEmpty( name ) ) {
+ return nullSound;
+ }
+ if ( rebuildCache ) {
+ theAudioManager.RebuildSoundFXCache();
+ }
+ if ( !theAudioManager.soundFXCache.ContainsKey( name ) ) {
+#if DEBUG_BUILD || UNITY_EDITOR
+ Debug.LogError( "WARNING: Missing Sound FX in cache: " + name );
+#endif
+ return nullSound;
+ }
+ return theAudioManager.soundFXCache[name];
+ }
+
+ /*
+ -----------------------
+ FindAudioManager()
+ -----------------------
+ */
+ static private bool FindAudioManager() {
+ GameObject audioManagerObject = GameObject.Find( "AudioManager" );
+ if ( ( audioManagerObject == null ) || ( audioManagerObject.GetComponent() == null ) ) {
+ if ( !hideWarnings ) {
+ Debug.LogError( "[ERROR] AudioManager object missing from hierarchy!" );
+ hideWarnings = true;
+ }
+ return false;
+ } else {
+ audioManagerObject.GetComponent().Init();
+ }
+ return true;
+ }
+
+ /*
+ -----------------------
+ GetGameObject()
+ -----------------------
+ */
+ static public GameObject GetGameObject() {
+ if ( theAudioManager == null ) {
+ if ( !FindAudioManager() ) {
+ return null;
+ }
+ }
+ return theAudioManager.gameObject;
+ }
+
+ /*
+ -----------------------
+ NameMinusGroup()
+ strip off the sound group from the inspector dropdown
+ -----------------------
+ */
+ static public string NameMinusGroup( string name ) {
+ if ( name.IndexOf( "/" ) > -1 ) {
+ return name.Substring( name.IndexOf( "/" ) + 1 );
+ }
+ return name;
+ }
+
+ /*
+ -----------------------
+ GetSoundFXNames()
+ used by the inspector
+ -----------------------
+ */
+ static public string[] GetSoundFXNames( string currentValue, out int currentIdx ) {
+ currentIdx = 0;
+ names.Clear();
+ if ( theAudioManager == null ) {
+ if ( !FindAudioManager() ) {
+ return defaultSound;
+ }
+ }
+ names.Add( nullSound.name );
+ for ( int group = 0; group < theAudioManager.soundGroupings.Length; group++ ) {
+ for ( int i = 0; i < theAudioManager.soundGroupings[group].soundList.Length; i++ ) {
+ if ( string.Compare( currentValue, theAudioManager.soundGroupings[group].soundList[i].name, true ) == 0 ) {
+ currentIdx = names.Count;
+ }
+ names.Add( theAudioManager.soundGroupings[group].name + "/" + theAudioManager.soundGroupings[group].soundList[i].name );
+ }
+ }
+ //names.Sort( delegate( string s1, string s2 ) { return s1.CompareTo( s2 ); } );
+ return names.ToArray();
+
+ }
+#if UNITY_EDITOR
+ /*
+ -----------------------
+ OnPrefabReimported()
+ -----------------------
+ */
+ static public void OnPrefabReimported() {
+ if ( theAudioManager != null ) {
+ Debug.Log( "[AudioManager] Reimporting the sound FX cache." );
+ theAudioManager.RebuildSoundFXCache();
+ }
+ }
+
+ /*
+ -----------------------
+ PlaySound()
+ used in the editor
+ -----------------------
+ */
+ static public void PlaySound( string soundFxName ) {
+ if ( theAudioManager == null ) {
+ if ( !FindAudioManager() ) {
+ return;
+ }
+ }
+ SoundFX soundFX = FindSoundFX( soundFxName, true );
+ if ( soundFX == null ) {
+ return;
+ }
+ AudioClip clip = soundFX.GetClip();
+ if ( clip != null ) {
+ Assembly unityEditorAssembly = typeof(AudioImporter).Assembly;
+ Type audioUtilClass = unityEditorAssembly.GetType("UnityEditor.AudioUtil");
+ MethodInfo method = audioUtilClass.GetMethod(
+ "PlayClip",
+ BindingFlags.Static | BindingFlags.Public,
+ null,
+ new System.Type[] { typeof(AudioClip) },
+ null );
+ method.Invoke( null, new object[] { clip } );
+ }
+ }
+
+ /*
+ -----------------------
+ IsSoundPlaying()
+ used in the editor
+ -----------------------
+ */
+ static public bool IsSoundPlaying( string soundFxName ) {
+ if ( theAudioManager == null ) {
+ if ( !FindAudioManager() ) {
+ return false;
+ }
+ }
+ SoundFX soundFX = FindSoundFX( soundFxName, true );
+ if ( soundFX == null ) {
+ return false;
+ }
+ AudioClip clip = soundFX.GetClip();
+ if ( clip != null ) {
+ Assembly unityEditorAssembly = typeof(AudioImporter).Assembly;
+ Type audioUtilClass = unityEditorAssembly.GetType("UnityEditor.AudioUtil");
+ MethodInfo method = audioUtilClass.GetMethod(
+ "IsClipPlaying",
+ BindingFlags.Static | BindingFlags.Public,
+ null,
+ new System.Type[] { typeof(AudioClip) },
+ null );
+ return Convert.ToBoolean( method.Invoke( null, new object[] { clip } ) );
+ }
+
+ return false;
+ }
+
+ /*
+ -----------------------
+ StopSound()
+ used in the editor
+ -----------------------
+ */
+ static public void StopSound(string soundFxName)
+ {
+ if (theAudioManager == null)
+ {
+ if (!FindAudioManager())
+ {
+ return;
+ }
+ }
+ SoundFX soundFX = FindSoundFX(soundFxName, true);
+ if (soundFX == null)
+ {
+ return;
+ }
+ AudioClip clip = soundFX.GetClip();
+ if (clip != null)
+ {
+ Assembly unityEditorAssembly = typeof(AudioImporter).Assembly;
+ Type audioUtilClass = unityEditorAssembly.GetType("UnityEditor.AudioUtil");
+ MethodInfo method = audioUtilClass.GetMethod(
+ "StopClip",
+ BindingFlags.Static | BindingFlags.Public,
+ null,
+ new System.Type[] { typeof(AudioClip) },
+ null);
+ method.Invoke(null, new object[] { clip });
+ }
+ }
+#endif
+}
+
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager.cs.meta
new file mode 100644
index 0000000..02c9d03
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6d1d30b41806244fca035fdae2896fb7
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager_Sound.cs b/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager_Sound.cs
new file mode 100644
index 0000000..b8e8181
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager_Sound.cs
@@ -0,0 +1,782 @@
+using UnityEngine;
+using UnityEngine.Audio;
+
+//-------------------------------------------------------------------------
+// Types
+//-------------------------------------------------------------------------
+
+public enum EmitterChannel {
+ None = -1,
+ Reserved = 0, // plays on the single reserved emitter
+ Any // queues to the next available emitter
+}
+
+[System.Serializable]
+public class MixerSnapshot {
+ public AudioMixerSnapshot snapshot = null;
+ public float transitionTime = 0.25f;
+}
+
+/*
+-----------------------
+
+ GameManager Sound Routines
+
+-----------------------
+*/
+public partial class AudioManager : MonoBehaviour {
+
+ public enum Fade {
+ In,
+ Out
+ }
+
+ private float audioMaxFallOffDistanceSqr = 25.0f * 25.0f; // past this distance, sounds are ignored for the local player
+
+ private SoundEmitter[] soundEmitters = null; // pool of sound emitters to play sounds through
+
+ private FastList playingEmitters = new FastList();
+ private FastList nextFreeEmitters = new FastList();
+
+ private MixerSnapshot currentSnapshot = null;
+
+ static private GameObject soundEmitterParent = null; // parent object for the sound emitters
+ static private Transform staticListenerPosition = null; // play position for regular 2D sounds
+
+ static private bool showPlayingEmitterCount = false;
+ static private bool forceShowEmitterCount = false;
+
+ static private bool soundEnabled = true;
+ static public bool SoundEnabled { get { return soundEnabled; } }
+
+ static readonly AnimationCurve defaultReverbZoneMix = new AnimationCurve( new Keyframe[2] { new Keyframe( 0f, 1.0f ), new Keyframe( 1f, 1f ) } );
+
+ /*
+ -----------------------
+ InitializeSoundSystem()
+ initialize persistent sound emitter objects that live across scene loads
+ -----------------------
+ */
+ void InitializeSoundSystem() {
+
+ int bufferLength = 960;
+ int numBuffers = 4;
+ AudioSettings.GetDSPBufferSize( out bufferLength, out numBuffers );
+ if ( Application.isPlaying ) {
+ Debug.Log( "[AudioManager] Audio Sample Rate: " + AudioSettings.outputSampleRate );
+ Debug.Log( "[AudioManager] Audio Buffer Length: " + bufferLength + " Size: " + numBuffers );
+ }
+
+ // find the audio listener for playing regular 2D sounds
+ AudioListener audioListenerObject = GameObject.FindObjectOfType() as AudioListener;
+ if ( audioListenerObject == null ) {
+ Debug.LogError( "[AudioManager] Missing AudioListener object! Add one to the scene." );
+ } else {
+ staticListenerPosition = audioListenerObject.transform;
+ }
+
+ // we allocate maxSoundEmitters + reserved channels
+ soundEmitters = new SoundEmitter[maxSoundEmitters+(int)EmitterChannel.Any];
+
+ // see if the sound emitters have already been created, if so, nuke it, it shouldn't exist in the scene upon load
+ soundEmitterParent = GameObject.Find( "__SoundEmitters__" );
+ if ( soundEmitterParent != null ) {
+ // delete any sound emitters hanging around
+ Destroy( soundEmitterParent );
+ }
+
+ // create them all
+ soundEmitterParent = new GameObject( "__SoundEmitters__" );
+ for ( int i = 0; i < maxSoundEmitters + (int)EmitterChannel.Any; i++ ) {
+ GameObject emitterObject = new GameObject( "SoundEmitter_" + i );
+ emitterObject.transform.parent = soundEmitterParent.transform;
+ emitterObject.transform.position = Vector3.zero;
+ // don't ever save this to the scene
+ emitterObject.hideFlags = HideFlags.DontSaveInEditor;
+ // add the sound emitter components
+ soundEmitters[i] = emitterObject.AddComponent();
+ soundEmitters[i].SetDefaultParent( soundEmitterParent.transform );
+ soundEmitters[i].SetChannel( i );
+ soundEmitters[i].Stop();
+ // save off the original index
+ soundEmitters[i].originalIdx = i;
+ }
+ // reset the free emitter lists
+ ResetFreeEmitters();
+ soundEmitterParent.hideFlags = HideFlags.DontSaveInEditor;
+
+ audioMaxFallOffDistanceSqr = audioMaxFallOffDistance * audioMaxFallOffDistance;
+ }
+
+ /*
+ -----------------------
+ UpdateFreeEmitters()
+ -----------------------
+ */
+ void UpdateFreeEmitters() {
+ if ( verboseLogging ) {
+ if ( Input.GetKeyDown( KeyCode.A ) ) {
+ forceShowEmitterCount = !forceShowEmitterCount;
+ }
+ if ( forceShowEmitterCount ) {
+ showPlayingEmitterCount = true;
+ }
+ }
+ // display playing emitter count when the sound system is overwhelmed
+ int total = 0, veryLow = 0, low = 0, def = 0, high = 0, veryHigh = 0;
+
+ // find emitters that are done playing and add them to the nextFreeEmitters list
+ for ( int i = 0; i < playingEmitters.size; ) {
+ if ( playingEmitters[i] == null ) {
+ Debug.LogError( "[AudioManager] ERROR: playingEmitters list had a null emitter! Something nuked a sound emitter!!!" );
+ playingEmitters.RemoveAtFast( i );
+ return;
+ }
+ if ( !playingEmitters[i].IsPlaying() ) {
+ // add to the free list and remove from the playing list
+ if ( verboseLogging ) {
+ if ( nextFreeEmitters.Contains( playingEmitters[i] ) ) {
+ Debug.LogError( "[AudioManager] ERROR: playing sound emitter already in the free emitters list!" );
+ }
+ }
+ playingEmitters[i].Stop();
+ nextFreeEmitters.Add( playingEmitters[i] );
+ playingEmitters.RemoveAtFast( i );
+ continue;
+ }
+ // debugging/profiling
+ if ( verboseLogging && showPlayingEmitterCount ) {
+ total++;
+ switch ( playingEmitters[i].priority ) {
+ case SoundPriority.VeryLow: veryLow++; break;
+ case SoundPriority.Low: low++; break;
+ case SoundPriority.Default: def++; break;
+ case SoundPriority.High: high++; break;
+ case SoundPriority.VeryHigh: veryHigh++; break;
+ }
+ }
+ i++;
+ }
+ if ( verboseLogging && showPlayingEmitterCount ) {
+ Debug.LogWarning( string.Format( "[AudioManager] Playing sounds: Total {0} | VeryLow {1} | Low {2} | Default {3} | High {4} | VeryHigh {5} | Free {6}", Fmt( total ), Fmt( veryLow ), Fmt( low ), Fmt( def ), Fmt( high ), Fmt( veryHigh ), FmtFree( nextFreeEmitters.Count ) ) );
+ showPlayingEmitterCount = false;
+ }
+ }
+
+ /*
+ -----------------------
+ Fmt()
+ -----------------------
+ */
+ string Fmt( int count ) {
+ float t = count / (float)theAudioManager.maxSoundEmitters;
+ if ( t < 0.5f ) {
+ return "" + count.ToString() + " ";
+ } else if ( t < 0.7 ) {
+ return "" + count.ToString() + " ";
+ } else {
+ return "" + count.ToString() + " ";
+ }
+ }
+
+ /*
+ -----------------------
+ FmtFree()
+ -----------------------
+ */
+ string FmtFree( int count ) {
+ float t = count / (float)theAudioManager.maxSoundEmitters;
+ if ( t < 0.2f ) {
+ return "" + count.ToString() + " ";
+ } else if ( t < 0.3 ) {
+ return "" + count.ToString() + " ";
+ } else {
+ return "" + count.ToString() + " ";
+ }
+ }
+
+ /*
+ -----------------------
+ OnPreSceneLoad()
+ -----------------------
+ */
+ void OnPreSceneLoad() {
+ // move any attached sounds back to the sound emitters parent before changing levels so they don't get destroyed
+ Debug.Log( "[AudioManager] OnPreSceneLoad cleanup" );
+ for ( int i = 0; i < soundEmitters.Length; i++ ) {
+ soundEmitters[i].Stop();
+ soundEmitters[i].ResetParent( soundEmitterParent.transform );
+ }
+ // reset our emitter lists
+ ResetFreeEmitters();
+ }
+
+ /*
+ -----------------------
+ ResetFreeEmitters()
+ -----------------------
+ */
+ void ResetFreeEmitters() {
+ nextFreeEmitters.Clear();
+ playingEmitters.Clear();
+ for ( int i = (int)EmitterChannel.Any; i < soundEmitters.Length; i++ ) {
+ nextFreeEmitters.Add( soundEmitters[i] );
+ }
+ }
+
+ /*
+ -----------------------
+ FadeOutSoundChannel()
+ utility function to fade out a playing sound channel
+ -----------------------
+ */
+ static public void FadeOutSoundChannel( int channel, float delaySecs, float fadeTime ) {
+ theAudioManager.soundEmitters[channel].FadeOutDelayed( delaySecs, fadeTime );
+ }
+
+ /*
+ -----------------------
+ StopSound()
+ -----------------------
+ */
+ static public bool StopSound( int idx, bool fadeOut = true, bool stopReserved = false ) {
+ if ( !stopReserved && ( idx == (int)EmitterChannel.Reserved ) ) {
+ return false;
+ }
+ if ( !fadeOut ) {
+ theAudioManager.soundEmitters[idx].Stop();
+ }
+ else {
+ theAudioManager.soundEmitters[idx].FadeOut( theAudioManager.soundFxFadeSecs );
+ }
+
+ return true;
+ }
+
+ /*
+ -----------------------
+ FadeInSound()
+ -----------------------
+ */
+ public static void FadeInSound( int idx, float fadeTime, float volume ) {
+ theAudioManager.soundEmitters[idx].FadeIn( fadeTime, volume );
+ }
+
+ /*
+ -----------------------
+ FadeInSound()
+ -----------------------
+ */
+ public static void FadeInSound( int idx, float fadeTime ) {
+ theAudioManager.soundEmitters[idx].FadeIn( fadeTime );
+ }
+
+ /*
+ -----------------------
+ FadeOutSound()
+ -----------------------
+ */
+ public static void FadeOutSound( int idx, float fadeTime ) {
+ theAudioManager.soundEmitters[idx].FadeOut( fadeTime );
+ }
+
+ /*
+ -----------------------
+ StopAllSounds()
+ -----------------------
+ */
+ public static void StopAllSounds( bool fadeOut, bool stopReserved = false ) {
+ for ( int i = 0; i < theAudioManager.soundEmitters.Length; i++ ) {
+ StopSound( i, fadeOut, stopReserved );
+ }
+ }
+
+ /*
+ -----------------------
+ MuteAllSounds()
+ -----------------------
+ */
+ public void MuteAllSounds( bool mute, bool muteReserved = false ) {
+ for ( int i = 0; i < soundEmitters.Length; i++ ) {
+ if ( !muteReserved && ( i == (int)EmitterChannel.Reserved ) ) {
+ continue;
+ }
+ soundEmitters[i].audioSource.mute = true;
+ }
+ }
+
+ /*
+ -----------------------
+ UnMuteAllSounds()
+ -----------------------
+ */
+ public void UnMuteAllSounds( bool unmute, bool unmuteReserved = false ) {
+ for ( int i = 0; i < soundEmitters.Length; i++ ) {
+ if ( !unmuteReserved && ( i == (int)EmitterChannel.Reserved ) ) {
+ continue;
+ }
+ if ( soundEmitters[i].audioSource.isPlaying ) {
+ soundEmitters[i].audioSource.mute = false;
+ }
+ }
+ }
+
+ /*
+ -----------------------
+ GetEmitterEndTime()
+ -----------------------
+ */
+ static public float GetEmitterEndTime( int idx ) {
+ return theAudioManager.soundEmitters[idx].endPlayTime;
+ }
+
+ /*
+ -----------------------
+ SetEmitterTime()
+ -----------------------
+ */
+ static public float SetEmitterTime( int idx, float time ) {
+ return theAudioManager.soundEmitters[idx].time = time;
+ }
+
+ /*
+ -----------------------
+ PlaySound()
+ -----------------------
+ */
+ static public int PlaySound( AudioClip clip, float volume, EmitterChannel src = EmitterChannel.Any, float delay = 0.0f, float pitchVariance = 1.0f, bool loop = false ) {
+ if ( !SoundEnabled ) {
+ return -1;
+ }
+ return PlaySoundAt( ( staticListenerPosition != null ) ? staticListenerPosition.position : Vector3.zero, clip, volume, src, delay, pitchVariance, loop );
+ }
+
+ /*
+ -----------------------
+ FindFreeEmitter()
+ -----------------------
+ */
+ static private int FindFreeEmitter( EmitterChannel src, SoundPriority priority ) {
+ // default to the reserved emitter
+ SoundEmitter next = theAudioManager.soundEmitters[0];
+ if ( src == EmitterChannel.Any ) {
+ // pull from the free emitter list if possible
+ if ( theAudioManager.nextFreeEmitters.size > 0 ) {
+ // return the first in the list
+ next = theAudioManager.nextFreeEmitters[0];
+ // remove it from the free list
+ theAudioManager.nextFreeEmitters.RemoveAtFast( 0 );
+ } else {
+ // no free emitters available so pull from the lowest priority sound
+ if ( priority == SoundPriority.VeryLow ) {
+ // skip low priority sounds
+ return -1;
+ } else {
+ // find a playing emitter that has a lower priority than what we're requesting
+ // TODO - we could first search for Very Low, then Low, etc ... TBD if it's worth the effort
+ next = theAudioManager.playingEmitters.Find( item => item != null && item.priority < priority );
+ if ( next == null ) {
+ // last chance to find a free emitter
+ if ( priority < SoundPriority.Default ) {
+ // skip sounds less than the default priority
+ if ( theAudioManager.verboseLogging ) {
+ Debug.LogWarning( "[AudioManager] skipping sound " + priority );
+ }
+ return -1;
+ } else {
+ // grab a default priority emitter so that we don't cannabalize a high priority sound
+ next = theAudioManager.playingEmitters.Find( item => item != null && item.priority <= SoundPriority.Default ); ;
+ }
+ }
+ if ( next != null ) {
+ if ( theAudioManager.verboseLogging ) {
+ Debug.LogWarning( "[AudioManager] cannabalizing " + next.originalIdx + " Time: " + Time.time );
+ }
+ // remove it from the playing list
+ next.Stop();
+ theAudioManager.playingEmitters.RemoveFast( next );
+ }
+ }
+ }
+ }
+ if ( next == null ) {
+ Debug.LogError( "[AudioManager] ERROR - absolutely couldn't find a free emitter! Priority = " + priority + " TOO MANY PlaySound* calls!" );
+ showPlayingEmitterCount = true;
+ return -1;
+ }
+ return next.originalIdx;
+ }
+
+ /*
+ -----------------------
+ PlaySound()
+ -----------------------
+ */
+ static public int PlaySound( SoundFX soundFX, EmitterChannel src = EmitterChannel.Any, float delay = 0.0f ) {
+ if ( !SoundEnabled ) {
+ return -1;
+ }
+ return PlaySoundAt( ( staticListenerPosition != null ) ? staticListenerPosition.position : Vector3.zero, soundFX, src, delay );
+ }
+
+ /*
+ -----------------------
+ PlaySoundAt()
+ -----------------------
+ */
+ static public int PlaySoundAt( Vector3 position, SoundFX soundFX, EmitterChannel src = EmitterChannel.Any, float delay = 0.0f, float volumeOverride = 1.0f, float pitchMultiplier = 1.0f ) {
+ if ( !SoundEnabled ) {
+ return -1;
+ }
+
+ AudioClip clip = soundFX.GetClip();
+ if ( clip == null ) {
+ return -1;
+ }
+
+ // check the distance from the local player and ignore sounds out of range
+ if ( staticListenerPosition != null ) {
+ float distFromListener = ( staticListenerPosition.position - position ).sqrMagnitude;
+ if ( distFromListener > theAudioManager.audioMaxFallOffDistanceSqr ) {
+ return -1;
+ }
+ if ( distFromListener > soundFX.MaxFalloffDistSquared ) {
+ return -1;
+ }
+ }
+
+ // check max playing sounds
+ if ( soundFX.ReachedGroupPlayLimit() ) {
+ if ( theAudioManager.verboseLogging ) {
+ Debug.Log( "[AudioManager] PlaySoundAt() with " + soundFX.name + " skipped due to group play limit" );
+ }
+ return -1;
+ }
+
+ int idx = FindFreeEmitter( src, soundFX.priority );
+ if ( idx == -1 ) {
+ // no free emitters - should only happen on very low priority sounds
+ return -1;
+ }
+ SoundEmitter emitter = theAudioManager.soundEmitters[idx];
+
+ // make sure to detach the emitter from a previous parent
+ emitter.ResetParent( soundEmitterParent.transform );
+ emitter.gameObject.SetActive( true );
+
+ // set up the sound emitter
+ AudioSource audioSource = emitter.audioSource;
+ ONSPAudioSource osp = emitter.osp;
+
+ audioSource.enabled = true;
+ audioSource.volume = Mathf.Clamp01( Mathf.Clamp01( theAudioManager.volumeSoundFX * soundFX.volume ) * volumeOverride * soundFX.GroupVolumeOverride );
+ audioSource.pitch = soundFX.GetPitch() * pitchMultiplier;
+ audioSource.time = 0.0f;
+ audioSource.spatialBlend = 1.0f;
+ audioSource.rolloffMode = soundFX.falloffCurve;
+ if ( soundFX.falloffCurve == AudioRolloffMode.Custom ) {
+ audioSource.SetCustomCurve( AudioSourceCurveType.CustomRolloff, soundFX.volumeFalloffCurve );
+ }
+ audioSource.SetCustomCurve( AudioSourceCurveType.ReverbZoneMix, soundFX.reverbZoneMix );
+ audioSource.dopplerLevel = 0;
+ audioSource.clip = clip;
+ audioSource.spread = soundFX.spread;
+ audioSource.loop = soundFX.looping;
+ audioSource.mute = false;
+ audioSource.minDistance = soundFX.falloffDistance.x;
+ audioSource.maxDistance = soundFX.falloffDistance.y;
+ audioSource.outputAudioMixerGroup = soundFX.GetMixerGroup( AudioManager.EmitterGroup );
+ // set the play time so we can check when sounds are done
+ emitter.endPlayTime = Time.time + clip.length + delay;
+ // cache the default volume for fading
+ emitter.defaultVolume = audioSource.volume;
+ // sound priority
+ emitter.priority = soundFX.priority;
+ // reset this
+ emitter.onFinished = null;
+ // update the sound group limits
+ emitter.SetPlayingSoundGroup( soundFX.Group );
+ // add to the playing list
+ if ( src == EmitterChannel.Any ) {
+ theAudioManager.playingEmitters.AddUnique( emitter );
+ }
+
+ // OSP properties
+ if ( osp != null ) {
+ osp.EnableSpatialization = soundFX.ospProps.enableSpatialization;
+ osp.EnableRfl = theAudioManager.enableSpatializedFastOverride || soundFX.ospProps.useFastOverride ? true : false;
+ osp.Gain = soundFX.ospProps.gain;
+ osp.UseInvSqr = soundFX.ospProps.enableInvSquare;
+ osp.Near = soundFX.ospProps.invSquareFalloff.x;
+ osp.Far = soundFX.ospProps.invSquareFalloff.y;
+ audioSource.spatialBlend = (soundFX.ospProps.enableSpatialization) ? 1.0f : 0.8f;
+
+ // make sure to set the properties in the audio source before playing
+ osp.SetParameters(ref audioSource);
+ }
+
+ audioSource.transform.position = position;
+
+ if ( theAudioManager.verboseLogging ) {
+ Debug.Log( "[AudioManager] PlaySoundAt() channel = " + idx + " soundFX = " + soundFX.name + " volume = " + emitter.volume + " Delay = " + delay + " time = " + Time.time + "\n" );
+ }
+
+ // play the sound
+ if ( delay > 0f ) {
+ audioSource.PlayDelayed( delay );
+ } else {
+ audioSource.Play();
+ }
+
+ return idx;
+ }
+
+ /*
+ -----------------------
+ PlayRandomSoundAt()
+ -----------------------
+ */
+ static public int PlayRandomSoundAt( Vector3 position, AudioClip[] clips, float volume, EmitterChannel src = EmitterChannel.Any, float delay = 0.0f, float pitch = 1.0f, bool loop = false ) {
+ if ( ( clips == null ) || ( clips.Length == 0 ) ) {
+ return -1;
+ }
+ int idx = Random.Range( 0, clips.Length );
+ return PlaySoundAt( position, clips[idx], volume, src, delay, pitch, loop );
+ }
+
+ /*
+ -----------------------
+ PlaySoundAt()
+ -----------------------
+ */
+ static public int PlaySoundAt( Vector3 position, AudioClip clip, float volume = 1.0f, EmitterChannel src = EmitterChannel.Any, float delay = 0.0f, float pitch = 1.0f, bool loop = false ) {
+ if ( !SoundEnabled ) {
+ return -1;
+ }
+
+ if ( clip == null ) {
+ return -1;
+ }
+
+ // check the distance from the local player and ignore sounds out of range
+ if ( staticListenerPosition != null ) {
+ if ( ( staticListenerPosition.position - position ).sqrMagnitude > theAudioManager.audioMaxFallOffDistanceSqr ) {
+ // no chance of being heard
+ return -1;
+ }
+ }
+
+ int idx = FindFreeEmitter( src, 0 );
+ if ( idx == -1 ) {
+ // no free emitters - should only happen on very low priority sounds
+ return -1;
+ }
+ SoundEmitter emitter = theAudioManager.soundEmitters[idx];
+
+ // make sure to detach the emitter from a previous parent
+ emitter.ResetParent( soundEmitterParent.transform );
+ emitter.gameObject.SetActive( true );
+
+ // set up the sound emitter
+ AudioSource audioSource = emitter.audioSource;
+ ONSPAudioSource osp = emitter.osp;
+
+ audioSource.enabled = true;
+ audioSource.volume = Mathf.Clamp01( theAudioManager.volumeSoundFX * volume );
+ audioSource.pitch = pitch;
+ audioSource.spatialBlend = 0.8f;
+ audioSource.rolloffMode = AudioRolloffMode.Linear;
+ audioSource.SetCustomCurve( AudioSourceCurveType.ReverbZoneMix, defaultReverbZoneMix );
+ audioSource.dopplerLevel = 0.0f;
+ audioSource.clip = clip;
+ audioSource.spread = 0.0f;
+ audioSource.loop = loop;
+ audioSource.mute = false;
+ audioSource.minDistance = theAudioManager.audioMinFallOffDistance;
+ audioSource.maxDistance = theAudioManager.audioMaxFallOffDistance;
+ audioSource.outputAudioMixerGroup = AudioManager.EmitterGroup;
+ // set the play time so we can check when sounds are done
+ emitter.endPlayTime = Time.time + clip.length + delay;
+ // cache the default volume for fading
+ emitter.defaultVolume = audioSource.volume;
+ // default priority
+ emitter.priority = 0;
+ // reset this
+ emitter.onFinished = null;
+ // update the sound group limits
+ emitter.SetPlayingSoundGroup( null );
+ // add to the playing list
+ if ( src == EmitterChannel.Any ) {
+ theAudioManager.playingEmitters.AddUnique( emitter );
+ }
+
+ // disable spatialization (by default for regular AudioClips)
+ if ( osp != null ) {
+ osp.EnableSpatialization = false;
+ }
+
+ audioSource.transform.position = position;
+
+ if ( theAudioManager.verboseLogging ) {
+ Debug.Log( "[AudioManager] PlaySoundAt() channel = " + idx + " clip = " + clip.name + " volume = " + emitter.volume + " Delay = " + delay + " time = " + Time.time + "\n" );
+ }
+
+ // play the sound
+ if ( delay > 0f ) {
+ audioSource.PlayDelayed( delay );
+ } else {
+ audioSource.Play();
+ }
+
+ return idx;
+ }
+
+ /*
+ -----------------------
+ SetOnFinished()
+ -----------------------
+ */
+ public static void SetOnFinished( int emitterIdx, System.Action onFinished ) {
+ if ( emitterIdx >= 0 && emitterIdx < theAudioManager.maxSoundEmitters ) {
+ theAudioManager.soundEmitters[emitterIdx].SetOnFinished( onFinished );
+ }
+ }
+
+ /*
+ -----------------------
+ SetOnFinished()
+ -----------------------
+ */
+ public static void SetOnFinished( int emitterIdx, System.Action onFinished, object obj ) {
+ if ( emitterIdx >= 0 && emitterIdx < theAudioManager.maxSoundEmitters ) {
+ theAudioManager.soundEmitters[emitterIdx].SetOnFinished( onFinished, obj );
+ }
+ }
+
+ /*
+ -----------------------
+ AttachSoundToParent()
+ -----------------------
+ */
+ public static void AttachSoundToParent( int idx, Transform parent ) {
+ if ( theAudioManager.verboseLogging ) {
+ string parentName = parent.name;
+ if ( parent.parent != null ) {
+ parentName = parent.parent.name + "/" + parentName;
+ }
+ Debug.Log( "[AudioManager] ATTACHING INDEX " + idx + " to " + parentName );
+ }
+ theAudioManager.soundEmitters[idx].ParentTo( parent );
+ }
+
+ /*
+ -----------------------
+ DetachSoundFromParent()
+ -----------------------
+ */
+ public static void DetachSoundFromParent( int idx ) {
+ if ( theAudioManager.verboseLogging ) {
+ Debug.Log( "[AudioManager] DETACHING INDEX " + idx );
+ }
+ theAudioManager.soundEmitters[idx].DetachFromParent();
+ }
+
+ /*
+ -----------------------
+ DetachSoundsFromParent()
+ -----------------------
+ */
+ public static void DetachSoundsFromParent( SoundEmitter[] emitters, bool stopSounds = true ) {
+ if ( emitters == null ) {
+ return;
+ }
+ foreach ( SoundEmitter emitter in emitters ) {
+ if ( emitter.defaultParent != null ) {
+ if ( stopSounds ) {
+ emitter.Stop();
+ }
+ emitter.DetachFromParent();
+ // make sure it's active
+ emitter.gameObject.SetActive( true );
+ } else {
+ if ( stopSounds ) {
+ emitter.Stop();
+ }
+ }
+ }
+ }
+
+ /*
+ -----------------------
+ SetEmitterMixerGroup()
+ -----------------------
+ */
+ public static void SetEmitterMixerGroup( int idx, AudioMixerGroup mixerGroup ) {
+ if ( ( theAudioManager != null ) && ( idx > -1 ) ) {
+ theAudioManager.soundEmitters[idx].SetAudioMixer( mixerGroup );
+ }
+ }
+
+ /*
+ -----------------------
+ GetActiveSnapshot()
+ -----------------------
+ */
+ public static MixerSnapshot GetActiveSnapshot() {
+ return ( theAudioManager != null ) ? theAudioManager.currentSnapshot : null;
+ }
+
+ /*
+ -----------------------
+ SetCurrentSnapshot()
+ -----------------------
+ */
+ public static void SetCurrentSnapshot( MixerSnapshot mixerSnapshot ) {
+#if UNITY_EDITOR
+ if ( mixerSnapshot == null || mixerSnapshot.snapshot == null ) {
+ Debug.LogError( "[AudioManager] ERROR setting empty mixer snapshot!" );
+ } else {
+ Debug.Log( "[AudioManager] Setting audio mixer snapshot: " + ( ( mixerSnapshot != null && mixerSnapshot.snapshot != null ) ? mixerSnapshot.snapshot.name : "None" ) + " Time: " + Time.time );
+ }
+#endif
+ if ( theAudioManager != null ) {
+ if ( ( mixerSnapshot != null ) && ( mixerSnapshot.snapshot != null ) ) {
+ mixerSnapshot.snapshot.TransitionTo( mixerSnapshot.transitionTime );
+ } else {
+ mixerSnapshot = null;
+ }
+ theAudioManager.currentSnapshot = mixerSnapshot;
+ }
+ }
+
+ /*
+ -----------------------
+ BlendWithCurrentSnapshot()
+ -----------------------
+ */
+ public static void BlendWithCurrentSnapshot( MixerSnapshot blendSnapshot, float weight, float blendTime = 0.0f ) {
+ if ( theAudioManager != null ) {
+ if ( theAudioManager.audioMixer == null ) {
+ Debug.LogWarning( "[AudioManager] can't call BlendWithCurrentSnapshot if the audio mixer is not set!" );
+ return;
+ }
+ if ( blendTime == 0.0f ) {
+ blendTime = Time.deltaTime;
+ }
+ if ( ( theAudioManager.currentSnapshot != null ) && (theAudioManager.currentSnapshot.snapshot != null ) ) {
+ if ( ( blendSnapshot != null ) && ( blendSnapshot.snapshot != null ) ) {
+ weight = Mathf.Clamp01( weight );
+ if ( weight == 0.0f ) {
+ // revert to the default snapshot
+ theAudioManager.currentSnapshot.snapshot.TransitionTo( blendTime );
+ } else {
+ AudioMixerSnapshot[] snapshots = new AudioMixerSnapshot[] { theAudioManager.currentSnapshot.snapshot, blendSnapshot.snapshot };
+ float[] weights = new float[] { 1.0f - weight, weight };
+ theAudioManager.audioMixer.TransitionToSnapshots( snapshots, weights, blendTime );
+ }
+ }
+ }
+ }
+ }
+
+}
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager_Sound.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager_Sound.cs.meta
new file mode 100644
index 0000000..b819ea7
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager_Sound.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 41cb0f893e9a44e83b09a66c55bd7856
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor.meta b/Assets/Oculus/AudioManager/Scripts/Audio/Editor.meta
new file mode 100644
index 0000000..28043d1
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: 02213405caaf04aeea7876974c06fa5a
+folderAsset: yes
+DefaultImporter:
+ userData:
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioImportPostProcessor.cs b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioImportPostProcessor.cs
new file mode 100644
index 0000000..c3a96f5
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioImportPostProcessor.cs
@@ -0,0 +1,41 @@
+using UnityEngine;
+using UnityEditor;
+
+/*
+-----------------------
+AudioImportPostProcessor()
+-----------------------
+*/
+public class AudioImportPostProcessor : AssetPostprocessor {
+
+ static void OnPostprocessAllAssets( string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths ) {
+ AudioManager audioManager = AudioManager.Instance;
+ if ( audioManager != null ) {
+ // find the asset path to the loaded audio manager prefab
+#if UNITY_2018_2_OR_NEWER
+ Object prefabObject = PrefabUtility.GetCorrespondingObjectFromSource( audioManager );
+#else
+ Object prefabObject = PrefabUtility.GetPrefabParent( audioManager );
+#endif
+ if ( prefabObject != null ) {
+ string path = AssetDatabase.GetAssetPath( prefabObject );
+ // check to see if the AudioManager prefab has been reimported.
+ // if so, rebuild everything
+ foreach ( string asset in importedAssets ) {
+ if ( asset.ToLower() == path.ToLower() ) {
+ // in the event the audio manager is selected, deselect it first before reloading
+ Debug.Log( "[AudioManager] AudioManager prefab reloaded: " + path );
+ Selection.objects = new Object[0] { };
+ // unfortunately even saving the audio manager prefab will trigger this action
+ //string msg = "The Audio Manager was reloaded. If you are going to be making modifications to the Audio Manager, ";
+ //msg += "please verify you have the latest version before proceeding. If in doubt, restart Unity before making modifications.";
+ //EditorUtility.DisplayDialog( "Audio Manager Prefab Reloaded", msg, "OK" );
+ // do the actual reload
+ AudioManager.OnPrefabReimported();
+ break;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioImportPostProcessor.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioImportPostProcessor.cs.meta
new file mode 100644
index 0000000..95789e5
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioImportPostProcessor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 48902580b26e3554d992bad48087eee5
+timeCreated: 1471010515
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioManagerInspector.cs b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioManagerInspector.cs
new file mode 100644
index 0000000..89285de
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioManagerInspector.cs
@@ -0,0 +1,626 @@
+using UnityEngine;
+using UnityEditor;
+using System.Collections.Generic;
+
+/*
+-----------------------
+
+ AudioManagerInspector
+
+-----------------------
+*/
+[CustomEditor(typeof(AudioManager))]
+public class AudioManagerInspector : Editor {
+
+ private AudioManager audioManager = null;
+ private string dragDropIdentifier = "MoveSoundFX";
+ private GUIStyle customDividerStyle = null;
+
+ /*
+ -----------------------
+ OnInspectorGUI()
+ -----------------------
+ */
+ public override void OnInspectorGUI() {
+
+ audioManager = target as AudioManager;
+
+ Event e = Event.current;
+
+ // draw the default properties
+ DrawDefaultProperties();
+
+ // draw the categories section
+ DrawCategories( e );
+
+ serializedObject.Update();
+
+ // draw the sound effects for the selected category
+ DrawSoundEffects( e );
+
+ serializedObject.ApplyModifiedProperties();
+
+ CreateStyles();
+ }
+
+ /*
+ -----------------------
+ MarkDirty()
+ -----------------------
+ */
+ void MarkDirty() {
+ serializedObject.SetIsDifferentCacheDirty();
+ EditorUtility.SetDirty( audioManager );
+ }
+
+ static private int selectedGroup = 0;
+ private int nextGroup = -1;
+ private int editGroup = -1;
+ private FastList soundGroups = new FastList();
+ private FastList groups = new FastList();
+ private Rect dropArea = new Rect();
+ private bool addSound = false;
+ private int deleteSoundIdx = -1;
+ private int dupeSoundIdx = -1;
+ private bool sortSounds = false;
+ private bool moveQueued = false;
+ private int origGroup = -1;
+ private int origIndex = -1;
+ private int moveToGroup = -1;
+
+ /*
+ -----------------------
+ DrawDefaultProperties()
+ -----------------------
+ */
+ void DrawDefaultProperties() {
+
+ BeginContents();
+ if ( DrawHeader( "Default Properties", true ) ) {
+ EditorGUILayout.BeginVertical( GUI.skin.box );
+ EditorGUILayout.PropertyField( serializedObject.FindProperty( "makePersistent" ), new GUIContent( "Don't Destroy on Load" ) );
+ EditorGUILayout.PropertyField( serializedObject.FindProperty( "enableSpatializedAudio" ), new GUIContent( "Enable Spatialized Audio" ) );
+ EditorGUILayout.PropertyField( serializedObject.FindProperty( "enableSpatializedFastOverride" ), new GUIContent( "Force Disable Reflections" ) );
+ EditorGUILayout.PropertyField( serializedObject.FindProperty( "audioMixer" ), new GUIContent( "Master Audio Mixer" ) );
+ EditorGUILayout.PropertyField( serializedObject.FindProperty( "defaultMixerGroup" ), new GUIContent( "Pooled Emitter Mixer Group" ) );
+ EditorGUILayout.PropertyField( serializedObject.FindProperty( "reservedMixerGroup" ), new GUIContent( "Reserved Emitter Mixer Group" ) );
+ EditorGUILayout.PropertyField( serializedObject.FindProperty( "voiceChatMixerGroup" ), new GUIContent( "Voice Chat Mixer Group" ) );
+ EditorGUILayout.PropertyField( serializedObject.FindProperty( "verboseLogging" ), new GUIContent( "Verbose Logging" ) );
+ EditorGUILayout.PropertyField( serializedObject.FindProperty( "maxSoundEmitters" ), new GUIContent( "Max Sound Emitters" ) );
+ EditorGUILayout.PropertyField( serializedObject.FindProperty( "volumeSoundFX" ), new GUIContent( "Default Volume" ) );
+ EditorGUILayout.PropertyField( serializedObject.FindProperty( "soundFxFadeSecs" ), new GUIContent( "Sound FX Fade Secs" ) );
+ EditorGUILayout.PropertyField( serializedObject.FindProperty( "audioMinFallOffDistance" ), new GUIContent( "Minimum Falloff Distance" ) );
+ EditorGUILayout.PropertyField( serializedObject.FindProperty( "audioMaxFallOffDistance" ), new GUIContent( "Maximum Falloff Distance" ) );
+ EditorGUILayout.EndVertical();
+ serializedObject.ApplyModifiedProperties();
+ }
+ EndContents();
+ }
+
+ /*
+ -----------------------
+ DrawSoundGroupProperties()
+ -----------------------
+ */
+ void DrawSoundGroupProperties() {
+ if ( selectedGroup == -1 ) {
+ return;
+ }
+
+ SerializedProperty soundGroupsArray = serializedObject.FindProperty( "soundGroupings" );
+ if ( selectedGroup >= soundGroupsArray.arraySize ) {
+ return;
+ }
+ SerializedProperty soundGroup = soundGroupsArray.GetArrayElementAtIndex( selectedGroup );
+ string soundGroupName = soundGroup.FindPropertyRelative( "name" ).stringValue;
+ if ( DrawHeader( string.Format( "{0} Properties", soundGroupName ), true ) ) {
+ EditorGUILayout.BeginVertical( GUI.skin.box );
+ EditorGUILayout.PropertyField( soundGroup.FindPropertyRelative( "mixerGroup" ), new GUIContent( "Override Mixer Group", "Leave empty to use the Audio Manager's default mixer group" ) );
+ if ( !Application.isPlaying ) {
+ EditorGUILayout.PropertyField( soundGroup.FindPropertyRelative( "maxPlayingSounds" ), new GUIContent( "Max Playing Sounds Limit", "Max playing sounds for this sound group, 0 = no limit" ) );
+ } else {
+ EditorGUILayout.BeginHorizontal();
+ EditorGUILayout.PropertyField( soundGroup.FindPropertyRelative( "maxPlayingSounds" ), new GUIContent( "Max Playing Sounds Limit", "Max playing sounds for this sound group, 0 = no limit" ) );
+ // cast to the actual object
+ int playingSounds = soundGroup.FindPropertyRelative( "playingSoundCount" ).intValue;
+ EditorGUILayout.LabelField( string.Format( "Playing: {0}", playingSounds ), GUILayout.Width( 80.0f ) );
+ EditorGUILayout.EndHorizontal();
+ }
+ EditorGUILayout.PropertyField( soundGroup.FindPropertyRelative( "preloadAudio" ), new GUIContent( "Preload Audio Clips", "Default = No special preloading, Preload = Audio clips are set to 'Preload', Manual Preload = Audio clips are set to not 'Preload'" ) );
+ EditorGUILayout.PropertyField( soundGroup.FindPropertyRelative( "volumeOverride" ), new GUIContent( "Volume Override", "All sounds played in this group will have volume scaled by this amount" ) );
+ if ( soundGroup.FindPropertyRelative( "volumeOverride" ).floatValue == 0.0f ) {
+ EditorGUILayout.HelpBox( "With a volumeOverride of 0.0, these sounds will not play!", MessageType.Warning );
+ }
+ EditorGUILayout.EndVertical();
+ serializedObject.ApplyModifiedProperties();
+ }
+ }
+
+ /*
+ -----------------------
+ DrawCategories()
+ -----------------------
+ */
+ void DrawCategories( Event e ) {
+
+ // do any housework before we start drawing
+ if ( moveQueued ) {
+ // make a temp copy
+ List origSoundList = new List( audioManager.soundGroupings[origGroup].soundList );
+ SoundFX temp = origSoundList[origIndex];
+ List moveToSoundList = new List( audioManager.soundGroupings[moveToGroup].soundList );
+ // add it to the move to group
+ moveToSoundList.Add( temp );
+ audioManager.soundGroupings[moveToGroup].soundList = moveToSoundList.ToArray();
+ // and finally, remove it from the original group
+ origSoundList.RemoveAt( origIndex );
+ audioManager.soundGroupings[origGroup].soundList = origSoundList.ToArray();
+ Debug.Log( "> Moved '" + temp.name + "' from " + "'" + audioManager.soundGroupings[origGroup].name + "' to '" + audioManager.soundGroupings[moveToGroup].name );
+ MarkDirty();
+ moveQueued = false;
+ }
+ // switch to the next group
+ if ( nextGroup > -1 ) {
+ selectedGroup = nextGroup;
+ nextGroup = -1;
+ }
+ // add a sound
+ if ( addSound ) {
+ List soundList = new List( audioManager.soundGroupings[selectedGroup].soundList );
+ SoundFX soundFX = new SoundFX();
+ soundFX.name = audioManager.soundGroupings[selectedGroup].name.ToLower() + "_new_unnamed_sound_fx";
+ soundList.Add( soundFX );
+ audioManager.soundGroupings[selectedGroup].soundList = soundList.ToArray();
+ MarkDirty();
+ addSound = false;
+ }
+ // sort the sounds
+ if ( sortSounds ) {
+ List soundList = new List( audioManager.soundGroupings[selectedGroup].soundList );
+ soundList.Sort( delegate ( SoundFX sfx1, SoundFX sfx2 ) { return string.Compare( sfx1.name, sfx2.name ); } );
+ audioManager.soundGroupings[selectedGroup].soundList = soundList.ToArray();
+ MarkDirty();
+ sortSounds = false;
+ }
+ // delete a sound
+ if ( deleteSoundIdx > -1 ) {
+ List soundList = new List( audioManager.soundGroupings[selectedGroup].soundList );
+ soundList.RemoveAt( deleteSoundIdx );
+ audioManager.soundGroupings[selectedGroup].soundList = soundList.ToArray();
+ MarkDirty();
+ deleteSoundIdx = -1;
+ }
+ // duplicate a sound
+ if ( dupeSoundIdx > -1 ) {
+ List soundList = new List( audioManager.soundGroupings[selectedGroup].soundList );
+ SoundFX origSoundFX = soundList[dupeSoundIdx];
+ // clone this soundFX
+ string json = JsonUtility.ToJson( origSoundFX );
+ SoundFX soundFX = JsonUtility.FromJson( json );
+ soundFX.name += "_duplicated";
+ soundList.Insert( dupeSoundIdx + 1, soundFX );
+ audioManager.soundGroupings[selectedGroup].soundList = soundList.ToArray();
+ MarkDirty();
+ dupeSoundIdx = -1;
+ }
+
+ if ( e.type == EventType.Repaint ) {
+ groups.Clear();
+ }
+
+ GUILayout.Space( 6f );
+
+ Color defaultColor = GUI.contentColor;
+ BeginContents();
+
+ if ( DrawHeader( "Sound FX Groups", true ) ) {
+ EditorGUILayout.BeginVertical( GUI.skin.box );
+ soundGroups.Clear();
+ for ( int i = 0; i < audioManager.soundGroupings.Length; i++ ) {
+ soundGroups.Add( audioManager.soundGroupings[i] );
+ }
+ for ( int i = 0; i < soundGroups.size; i++ ) {
+ EditorGUILayout.BeginHorizontal();
+ {
+ if ( i == selectedGroup ) {
+ GUI.contentColor = ( i == editGroup ) ? Color.white : Color.yellow;
+ } else {
+ GUI.contentColor = defaultColor;
+ }
+ if ( ( e.type == EventType.KeyDown ) && ( ( e.keyCode == KeyCode.Return ) || ( e.keyCode == KeyCode.KeypadEnter ) ) ) {
+ // toggle editing
+ if ( editGroup >= 0 ) {
+ editGroup = -1;
+ }
+ Event.current.Use();
+ }
+ if ( i == editGroup ) {
+ soundGroups[i].name = GUILayout.TextField( soundGroups[i].name, GUILayout.MinWidth( Screen.width - 80f ) );
+ } else {
+ GUILayout.Label( soundGroups[i].name, ( i == selectedGroup ) ? EditorStyles.whiteLabel : EditorStyles.label, GUILayout.ExpandWidth( true ) );
+ }
+ GUILayout.FlexibleSpace();
+ if ( GUILayout.Button( GUIContent.none, "OL Minus", GUILayout.Width(17f) ) ) { // minus button
+ if ( EditorUtility.DisplayDialog( "Delete '" + soundGroups[i].name + "'", "Are you sure you want to delete the selected sound group?", "Continue", "Cancel" ) ) {
+ soundGroups.RemoveAt( i );
+ MarkDirty();
+ }
+ }
+ }
+ EditorGUILayout.EndHorizontal();
+ // build a list of items
+ Rect lastRect = GUILayoutUtility.GetLastRect();
+ if ( e.type == EventType.Repaint ) {
+ groups.Add ( new ItemRect( i, lastRect, null ) );
+ }
+ if ( ( e.type == EventType.MouseDown ) && lastRect.Contains( e.mousePosition ) ) {
+ if ( ( i != selectedGroup ) || ( e.clickCount == 2 ) ) {
+ nextGroup = i;
+ if ( e.clickCount == 2 ) {
+ editGroup = i;
+ } else if ( editGroup != nextGroup ) {
+ editGroup = -1;
+ }
+ Repaint();
+ }
+ }
+ }
+ // add the final plus button
+ EditorGUILayout.BeginHorizontal();
+ GUILayout.FlexibleSpace();
+ if ( GUILayout.Button( GUIContent.none, "OL Plus", GUILayout.Width(17f) ) ) { // plus button
+ soundGroups.Add( new SoundGroup( "unnamed sound group" ) );
+ selectedGroup = editGroup = soundGroups.size - 1;
+ MarkDirty();
+ }
+ EditorGUILayout.EndHorizontal();
+ EditorGUILayout.EndVertical();
+
+ // reset the color
+ GUI.contentColor = defaultColor;
+
+ // the sort and import buttons
+ EditorGUILayout.BeginHorizontal();
+ GUILayout.FlexibleSpace();
+ if ( GUILayout.Button( "Sort", GUILayout.Width( 70f ) ) ) {
+ soundGroups.Sort( delegate( SoundGroup sg1, SoundGroup sg2 ) { return string.Compare( sg1.name, sg2.name ); } );
+ MarkDirty();
+ }
+ EditorGUILayout.EndHorizontal();
+
+ // draw a rect around the selected item
+ if ( ( selectedGroup >= 0 ) && ( selectedGroup < groups.size ) ) {
+ EditorGUI.DrawRect( groups[selectedGroup].rect, new Color( 1f, 1f, 1f, 0.06f ) );
+ }
+
+ // finally move the sound groups back into the audio manager
+ if ( soundGroups.size > 0 ) {
+ audioManager.soundGroupings = soundGroups.ToArray();
+ }
+
+ // calculate the drop area rect
+ if ( ( e.type == EventType.Repaint ) && ( groups.size > 0 ) ) {
+ dropArea.x = groups[0].rect.x;
+ dropArea.y = groups[0].rect.y;
+ dropArea.width = groups[0].rect.width;
+ dropArea.height = ( groups[groups.size-1].rect.y - groups[0].rect.y ) + groups[groups.size-1].rect.height;
+ }
+ }
+ // draw the sound group properties now
+ DrawSoundGroupProperties();
+
+ EndContents();
+
+ EditorGUILayout.HelpBox("Create and delete sound groups by clicking + and - respectively. Double click to rename sound groups. Drag and drop sounds from below to the groups above to move them.", MessageType.Info);
+
+ }
+
+ public class CustomDragData{
+ public int originalGroupIndex;
+ public int originalIndex;
+ public SerializedProperty originalProperty;
+ }
+
+ public class ItemRect {
+ public ItemRect( int index, Rect rect, SerializedProperty prop ) {
+ this.index = index;
+ this.rect = rect;
+ this.prop = prop;
+ }
+ public int index;
+ public Rect rect;
+ public SerializedProperty prop;
+ }
+
+ private FastList items = new FastList();
+
+ /*
+ -----------------------
+ CreateStyles()
+ -----------------------
+ */
+ void CreateStyles() {
+ if ( customDividerStyle == null ) {
+ customDividerStyle = new GUIStyle( EditorStyles.label );
+ customDividerStyle.normal.background = MakeTex( 4, 4, new Color( 0.5f, 0.5f, 0.5f, 0.25f ) );
+ customDividerStyle.margin.right -= 16;
+ }
+ }
+
+ /*
+ -----------------------
+ MakeTex()
+ -----------------------
+ */
+ private Texture2D MakeTex( int width, int height, Color col ) {
+ Color[] pix = new Color[width*height];
+
+ for ( int i = 0; i < pix.Length; i++ )
+ pix[i] = col;
+
+ Texture2D result = new Texture2D(width, height);
+ result.SetPixels( pix );
+ result.Apply();
+
+ return result;
+ }
+
+ /*
+ -----------------------
+ DrawSoundEffects()
+ -----------------------
+ */
+ void DrawSoundEffects( Event e ) {
+ if ( ( selectedGroup < 0 ) || ( audioManager.soundGroupings.Length == 0 ) || ( selectedGroup >= audioManager.soundGroupings.Length ) ) {
+ return;
+ }
+
+ if ( e.type == EventType.Repaint ) {
+ items.Clear();
+ } else {
+ CheckStartDrag( e );
+ }
+
+ BeginContents();
+ if ( DrawHeader( "Sound Effects", true ) ) {
+ GUILayout.Space(3f);
+ GUILayout.BeginVertical( GUI.skin.box );
+
+ SerializedProperty soundGroupsArray = serializedObject.FindProperty( "soundGroupings" );
+ SerializedProperty soundGroup = soundGroupsArray.GetArrayElementAtIndex( selectedGroup );
+ SerializedProperty soundList = soundGroup.FindPropertyRelative( "soundList" );
+
+ CreateStyles();
+
+ Rect prevRect = new Rect();
+ if ( soundList.arraySize > 0 ) {
+ // show all the sounds
+ for ( int i = 0; i < soundList.arraySize; i++ ) {
+ EditorGUI.indentLevel = 1;
+ SerializedProperty soundFX = soundList.GetArrayElementAtIndex( i );
+ SerializedProperty visToggle = soundFX.FindPropertyRelative( "visibilityToggle" );
+ EditorGUILayout.BeginHorizontal( customDividerStyle );
+ {
+ string soundFXName = soundFX.FindPropertyRelative( "name" ).stringValue;
+ // save the visibility state
+ visToggle.boolValue = EditorGUILayout.Foldout( visToggle.boolValue, soundFXName );
+
+ // play button
+ if ( GUILayout.Button( "\u25BA", GUILayout.Width( 17f ), GUILayout.Height( 16f ) ) ) {
+ if ( AudioManager.IsSoundPlaying( soundFXName ) ) {
+ AudioManager.StopSound( soundFXName );
+ } else {
+ AudioManager.PlaySound( soundFXName );
+ }
+ }
+ }
+ EditorGUILayout.EndHorizontal();
+ if ( visToggle.boolValue ) {
+ EditorGUILayout.PropertyField( soundFX, true );
+ EditorGUILayout.BeginHorizontal();
+ GUILayout.FlexibleSpace();
+ if ( GUILayout.Button( "Delete FX", GUILayout.Width( Screen.width / 3.0f ) ) ) {
+ if ( EditorUtility.DisplayDialog( "Delete " + soundFX.displayName, "Are you sure?", "Yes", "No!" ) ) {
+ deleteSoundIdx = i;
+ }
+ }
+ if ( GUILayout.Button( "Duplicate FX", GUILayout.Width( Screen.width / 3.0f ) ) ) {
+ dupeSoundIdx = i;
+ }
+ GUILayout.FlexibleSpace();
+ EditorGUILayout.EndHorizontal();
+ GUILayout.Space( 10.0f );
+ }
+ if ( e.type == EventType.Repaint ) {
+ // GetLastRect() is now returning the last rect drawn in the property drawer,
+ // not the rect used for the entire SoundFX
+ Rect curRect = prevRect;
+ curRect.y = prevRect.y + EditorGUIUtility.singleLineHeight;
+ Rect lastRect = GUILayoutUtility.GetLastRect();
+ curRect.height = ( lastRect.y + lastRect.height ) - curRect.y;
+ curRect.width = Screen.width;
+ items.Add( new ItemRect( i, curRect, soundFX ) );
+ }
+ prevRect = GUILayoutUtility.GetLastRect();
+ }
+ } else {
+ EditorGUILayout.LabelField( " " );
+ }
+ GUILayout.EndVertical();
+ GUILayout.Space(3f);
+ EditorGUILayout.BeginHorizontal();
+ GUILayout.FlexibleSpace();
+ if ( GUILayout.Button( "Add FX", GUILayout.Width( 70f ) ) ) {
+ //soundList.InsertArrayElementAtIndex( soundList.arraySize );
+ //MarkDirty();
+ addSound = true;
+ }
+ if ( GUILayout.Button( "Sort", GUILayout.Width( 70f ) ) ) {
+ sortSounds = true;
+ }
+ EditorGUILayout.EndHorizontal();
+
+ }
+ EndContents();
+
+ UpdateDrag( e );
+
+ }
+
+ /*
+ -----------------------
+ CheckStartDrag()
+ -----------------------
+ */
+ void CheckStartDrag( Event e ) {
+
+ if ( ( e.type == EventType.MouseDrag ) && ( e.button == 0 ) ) {
+ for ( int i = 0; i < items.size; i++ ) {
+ if ( items[i].rect.Contains( e.mousePosition ) ) {
+ DragAndDrop.PrepareStartDrag();// reset data
+
+ CustomDragData dragData = new CustomDragData();
+ dragData.originalGroupIndex = selectedGroup;
+ dragData.originalIndex = items[i].index;
+ dragData.originalProperty = items[i].prop;
+
+ DragAndDrop.SetGenericData( dragDropIdentifier, dragData );
+
+ DragAndDrop.objectReferences = new Object[0];
+
+ DragAndDrop.StartDrag( dragData.originalProperty.FindPropertyRelative( "name" ).stringValue );
+ e.Use();
+ }
+ }
+ }
+ }
+
+ /*
+ -----------------------
+ FindGroupIndex()
+ -----------------------
+ */
+ int FindGroupIndex( Event e ) {
+ for ( int i = 0; i < groups.size; i++ ) {
+ if ( groups[i].rect.Contains( e.mousePosition ) ) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
+ /*
+ -----------------------
+ UpdateDrag()
+ -----------------------
+ */
+ void UpdateDrag( Event e ) {
+
+ CustomDragData dragData = DragAndDrop.GetGenericData( dragDropIdentifier ) as CustomDragData;
+ if ( dragData == null ) {
+ return;
+ }
+
+ int groupIndex = FindGroupIndex( e );
+
+ switch ( e.type ) {
+ case EventType.DragUpdated:
+ if ( ( groupIndex >= 0 ) && ( groupIndex != selectedGroup ) ) {
+ DragAndDrop.visualMode = DragAndDropVisualMode.Move;
+ } else {
+ DragAndDrop.visualMode = DragAndDropVisualMode.Rejected;
+ }
+ e.Use();
+ break;
+ case EventType.Repaint:
+ if ( ( DragAndDrop.visualMode == DragAndDropVisualMode.None ) ||
+ ( DragAndDrop.visualMode == DragAndDropVisualMode.Rejected ) ) {
+ break;
+ }
+ if ( groupIndex >= 0 && groupIndex < groups.size ) {
+ EditorGUI.DrawRect( groups[groupIndex].rect, new Color( 0f, 1f, 0f, 0.1f ) );
+ }
+ break;
+ case EventType.DragPerform:
+ DragAndDrop.AcceptDrag();
+ // queue the sound FX move
+ QueueSoundFXMove( dragData.originalGroupIndex, dragData.originalIndex, groupIndex );
+ e.Use();
+ break;
+ case EventType.MouseUp:
+ // in case MouseDrag never occurred:
+ DragAndDrop.PrepareStartDrag();
+ break;
+ }
+ }
+
+ /*
+ -----------------------
+ QueueSoundFXMove()
+ -----------------------
+ */
+ void QueueSoundFXMove( int origGroupIndex, int origSoundIndex, int newGroupIndex ) {
+ moveQueued = true;
+ origGroup = origGroupIndex;
+ origIndex = origSoundIndex;
+ moveToGroup = newGroupIndex;
+ }
+
+ /*
+ -----------------------
+ DrawHeader()
+ -----------------------
+ */
+ static public bool DrawHeader (string text) { return DrawHeader(text, text, false); }
+ static public bool DrawHeader (string text, string key) { return DrawHeader(text, key, false); }
+ static public bool DrawHeader (string text, bool forceOn) { return DrawHeader(text, text, forceOn); }
+ static public bool DrawHeader( string text, string key, bool forceOn ) {
+ bool state = EditorPrefs.GetBool(key, true);
+
+ GUILayout.Space(3f);
+ if (!forceOn && !state) GUI.backgroundColor = new Color(0.8f, 0.8f, 0.8f);
+ GUILayout.BeginHorizontal();
+ GUILayout.Space(3f);
+
+ GUI.changed = false;
+ text = "" + text + " ";
+ if (state) text = "\u25BC " + text;
+ else text = "\u25B6 " + text;
+ if (!GUILayout.Toggle(true, text, "dragtab", GUILayout.MinWidth(20f))) state = !state;
+ if (GUI.changed) EditorPrefs.SetBool(key, state);
+
+ GUILayout.Space(2f);
+ GUILayout.EndHorizontal();
+ GUI.backgroundColor = Color.white;
+ if (!forceOn && !state) GUILayout.Space(3f);
+ return state;
+ }
+
+ /*
+ -----------------------
+ BeginContents()
+ -----------------------
+ */
+ static public void BeginContents() {
+ GUILayout.BeginHorizontal();
+ GUILayout.Space(4f);
+ EditorGUILayout.BeginHorizontal(GUILayout.MinHeight(10f));
+ GUILayout.BeginVertical();
+ GUILayout.Space(2f);
+ }
+
+ /*
+ -----------------------
+ EndContents()
+ -----------------------
+ */
+ static public void EndContents() {
+ GUILayout.Space(3f);
+ GUILayout.EndVertical();
+ EditorGUILayout.EndHorizontal();
+ GUILayout.Space(3f);
+ GUILayout.EndHorizontal();
+ GUILayout.Space(3f);
+ }
+
+}
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioManagerInspector.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioManagerInspector.cs.meta
new file mode 100644
index 0000000..b5a07f7
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioManagerInspector.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9f04a80514947486d9793cab0005447f
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MinMaxPropertyDrawer.cs b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MinMaxPropertyDrawer.cs
new file mode 100644
index 0000000..528dcc1
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MinMaxPropertyDrawer.cs
@@ -0,0 +1,61 @@
+using UnityEditor;
+using UnityEngine;
+
+/*
+-----------------------
+
+ MinMaxPropertyDrawer
+
+-----------------------
+*/
+[CustomPropertyDrawer (typeof (MinMaxAttribute))]
+public class MinMaxPropertyDrawer : PropertyDrawer {
+
+ // Provide easy access to the MinMaxAttribute for reading information from it.
+ MinMaxAttribute minMax { get { return ((MinMaxAttribute)attribute); } }
+
+ /*
+ -----------------------
+ GetPropertyHeight()
+ -----------------------
+ */
+ public override float GetPropertyHeight( SerializedProperty prop, GUIContent label ) {
+ return base.GetPropertyHeight( prop, label ) * 2f;
+ }
+
+ /*
+ -----------------------
+ OnGUI()
+ -----------------------
+ */
+ public override void OnGUI( Rect position, SerializedProperty property, GUIContent label ) {
+ Rect sliderPosition = EditorGUI.PrefixLabel( position, label );
+ SerializedProperty min = property.FindPropertyRelative( "x" );
+ SerializedProperty max = property.FindPropertyRelative( "y" );
+
+ // draw the range and the reset button first so that the slider doesn't grab all the input
+ Rect rangePosition = sliderPosition;
+ rangePosition.y += rangePosition.height * 0.5f;
+ rangePosition.height *= 0.5f;
+ Rect contentPosition = rangePosition;
+ EditorGUI.indentLevel = 0;
+ EditorGUIUtility.labelWidth = 30f;
+ contentPosition.width *= 0.3f;
+ EditorGUI.PropertyField(contentPosition, min, new GUIContent( "Min" ) );
+ contentPosition.x += contentPosition.width + 20f;
+ EditorGUI.PropertyField( contentPosition, max, new GUIContent( "Max" ) );
+ contentPosition.x += contentPosition.width + 20f;
+ contentPosition.width = 50.0f;
+ if ( GUI.Button( contentPosition, "Reset" ) ) {
+ min.floatValue = minMax.minDefaultVal;
+ max.floatValue = minMax.maxDefaultVal;
+ }
+ float minValue = min.floatValue;
+ float maxValue = max.floatValue;
+ EditorGUI.MinMaxSlider( sliderPosition, GUIContent.none, ref minValue, ref maxValue, minMax.min, minMax.max );
+ // round to readable values
+ min.floatValue = Mathf.Round( minValue / 0.01f ) * 0.01f;
+ max.floatValue = Mathf.Round( maxValue / 0.01f ) * 0.01f;
+ }
+
+}
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MinMaxPropertyDrawer.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MinMaxPropertyDrawer.cs.meta
new file mode 100644
index 0000000..1114479
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MinMaxPropertyDrawer.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 225aed143a64c4a6a93f3a07656ac5cd
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MixerSnapshotPropertyDrawer.cs b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MixerSnapshotPropertyDrawer.cs
new file mode 100644
index 0000000..743ba60
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MixerSnapshotPropertyDrawer.cs
@@ -0,0 +1,45 @@
+using UnityEditor;
+using UnityEngine;
+
+/*
+-----------------------
+
+ MixerSnapshotPropertyDrawer
+
+-----------------------
+*/
+[CustomPropertyDrawer( typeof( MixerSnapshot ) )]
+public class MixerSnapshotPropertyDrawer : PropertyDrawer {
+
+ // Draw the property inside the given rect
+ public override void OnGUI( Rect position, SerializedProperty property, GUIContent label ) {
+ // Using BeginProperty / EndProperty on the parent property means that
+ // prefab override logic works on the entire property.
+ EditorGUI.BeginProperty( position, label, property );
+
+ // Draw label
+ position = EditorGUI.PrefixLabel( position, GUIUtility.GetControlID( FocusType.Passive ), label );
+
+ // Don't make child fields be indented
+ var indent = EditorGUI.indentLevel;
+ EditorGUI.indentLevel = 0;
+ EditorGUIUtility.labelWidth = 65;
+
+ float width = ( position.width - 15.0f ) / 2.0f;
+
+ // Calculate rects
+ var srcRect = new Rect( position.x, position.y, width + 20, position.height ); position.x += width + 25.0f;
+ var destRect = new Rect( position.x, position.y, width - 60, position.height ); position.x += width - 60.0f;
+ var secsRect = new Rect( position.x, position.y, 40, position.height );
+
+ // Draw fields - pass GUIContent.none to each so they are drawn without labels
+ EditorGUI.PropertyField( srcRect, property.FindPropertyRelative( "snapshot" ), GUIContent.none );
+ EditorGUI.PropertyField( destRect, property.FindPropertyRelative( "transitionTime" ), new GUIContent( "Transition" ) );
+ EditorGUI.LabelField( secsRect, new GUIContent( "sec(s)" ) );
+
+ // Set indent back to what it was
+ EditorGUI.indentLevel = indent;
+
+ EditorGUI.EndProperty();
+ }
+}
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MixerSnapshotPropertyDrawer.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MixerSnapshotPropertyDrawer.cs.meta
new file mode 100644
index 0000000..8116165
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MixerSnapshotPropertyDrawer.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 82a91f30f2305c14dbfd2cc3c289dc59
+timeCreated: 1472247018
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/OSPPropsPropertyDrawer.cs b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/OSPPropsPropertyDrawer.cs
new file mode 100644
index 0000000..528fe4f
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/OSPPropsPropertyDrawer.cs
@@ -0,0 +1,62 @@
+using UnityEngine;
+using UnityEditor;
+using System.Collections;
+
+/*
+-----------------------
+
+OSPPropsPropertyDrawer
+
+-----------------------
+*/
+[CustomPropertyDrawer(typeof(OSPProps))]
+public class OSPPropsPropertyDrawer : PropertyDrawer {
+
+ static float lineHeight = EditorGUIUtility.singleLineHeight + 2.0f;
+ static float indent = 32.0f;
+ // TODO - some day just enumerate these
+ static string[] props = new string[] { "useFastOverride", "gain", "enableInvSquare", "volumetric" , "invSquareFalloff" };
+ static string[] names = new string[] { "Reflections Enabled", "Gain", "Enable Oculus Atten.", "Volumetric", "Range" };
+ static int[] lines = new int[] { 1, 1, 1, 1, 2, 2 };
+ /*
+ -----------------------
+ OnGUI()
+ -----------------------
+ */
+ public override void OnGUI( Rect position, SerializedProperty prop, GUIContent label ) {
+ SerializedProperty playSpatializedProp = prop.FindPropertyRelative("enableSpatialization");
+ position.height = lineHeight;
+ EditorGUI.PropertyField( position, playSpatializedProp );
+ if ( playSpatializedProp.boolValue ) {
+ position.y += lineHeight + 4.0f;
+ Rect posLine = position;
+ posLine.x += indent;
+ posLine.width -= indent;
+ posLine.height = 1f;
+ GUI.Box( posLine, "" );
+ position.y -= 10.0f;
+ for ( int i = 0; i < props.Length; i++ ) {
+ position.y += lineHeight;
+ position.height = ( lineHeight * lines[i] );
+ SerializedProperty sibling = prop.FindPropertyRelative( props[i] );
+ EditorGUI.PropertyField( position, sibling, new GUIContent( names[i] ) );
+ }
+ }
+ }
+
+ /*
+ -----------------------
+ GetPropertyHeight()
+ -----------------------
+ */
+ public override float GetPropertyHeight (SerializedProperty prop, GUIContent label) {
+ SerializedProperty playSpatializedProp = prop.FindPropertyRelative("enableSpatialization");
+ if ( !playSpatializedProp.boolValue ) {
+ return base.GetPropertyHeight( prop, label );
+ } else {
+ return base.GetPropertyHeight( prop, label ) + ( lineHeight * ( props.Length + 1 ) ) + 16.0f;
+ }
+ }
+
+}
+
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/OSPPropsPropertyDrawer.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/OSPPropsPropertyDrawer.cs.meta
new file mode 100644
index 0000000..1f97341
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/OSPPropsPropertyDrawer.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9fc79251b168140d68851f1e8c283514
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXPropertyDrawer.cs b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXPropertyDrawer.cs
new file mode 100644
index 0000000..855ce1e
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXPropertyDrawer.cs
@@ -0,0 +1,63 @@
+using UnityEngine;
+using UnityEditor;
+using System.Collections;
+
+/*
+-----------------------
+
+SoundFXPropertyDrawer
+
+-----------------------
+*/
+[CustomPropertyDrawer(typeof(SoundFX))]
+public class SoundFXPropertyDrawer : PropertyDrawer {
+
+ static float lineHeight = EditorGUIUtility.singleLineHeight + 2.0f;
+
+ static string[] props = new string[] { "name", "playback", "volume", "pitchVariance", "falloffDistance", "falloffCurve", "reverbZoneMix", "spread", "pctChanceToPlay", "priority", "delay", "looping", "ospProps", "soundClips" };
+
+ /*
+ -----------------------
+ OnGUI()
+ -----------------------
+ */
+ public override void OnGUI( Rect position, SerializedProperty prop, GUIContent label ) {
+
+ EditorGUILayout.BeginVertical();
+ for ( int i = 0; i < props.Length; i++ ) {
+ EditorGUI.indentLevel = 2;
+ SerializedProperty property = prop.FindPropertyRelative( props[i] );
+ if ( props[i] == "reverbZoneMix" ) {
+ EditorGUILayout.BeginHorizontal();
+ SerializedProperty reverbCurve = prop.FindPropertyRelative( "reverbZoneMix" );
+ EditorGUILayout.PropertyField( reverbCurve, true, GUILayout.Width( Screen.width - 130.0f ) );
+ if ( GUILayout.Button( "Reset", GUILayout.Width( 50.0f ) ) ) {
+ reverbCurve.animationCurveValue = new AnimationCurve( new Keyframe[2] { new Keyframe( 0f, 1.0f ), new Keyframe( 1f, 1f ) } );
+ }
+ EditorGUILayout.EndHorizontal();
+ } else {
+ EditorGUILayout.PropertyField( property, true, GUILayout.Width( Screen.width - 80.0f ) );
+ position.y += lineHeight + 4.0f;
+ if ( props[i] == "falloffCurve" ) {
+ if ( property.enumValueIndex == (int)AudioRolloffMode.Custom ) {
+ EditorGUILayout.PropertyField( prop.FindPropertyRelative( "volumeFalloffCurve" ), true, GUILayout.Width( Screen.width - 80.0f ) );
+ position.y += lineHeight + 4.0f;
+ }
+ }
+ }
+ }
+ EditorGUILayout.EndVertical();
+ GUILayout.Space( 5.0f );
+ }
+
+ /*
+ -----------------------
+ GetPropertyHeight()
+ -----------------------
+ */
+ public override float GetPropertyHeight (SerializedProperty prop, GUIContent label) {
+ return base.GetPropertyHeight( prop, label );
+ }
+
+}
+
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXPropertyDrawer.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXPropertyDrawer.cs.meta
new file mode 100644
index 0000000..ba7613b
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXPropertyDrawer.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: e791ce392b6937f47b1f7c90c6b402db
+timeCreated: 1468857307
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXRefPropertyDrawer.cs b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXRefPropertyDrawer.cs
new file mode 100644
index 0000000..6b58785
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXRefPropertyDrawer.cs
@@ -0,0 +1,58 @@
+using UnityEngine;
+using UnityEditor;
+using System.Collections;
+
+/*
+-----------------------
+
+SoundFXRefPropertyDrawer
+
+-----------------------
+*/
+[CustomPropertyDrawer(typeof(SoundFXRef))]
+public class SoundFXRefPropertyDrawer : PropertyDrawer {
+
+ static private GUIStyle disabledStyle = null;
+
+ /*
+ -----------------------
+ OnGUI()
+ -----------------------
+ */
+ public override void OnGUI( Rect position, SerializedProperty prop, GUIContent label ) {
+ int idx = 0;
+ Rect buttonPosition = position;
+ buttonPosition.x = position.x + position.width - 40f;
+ buttonPosition.width = 20f;
+ position.width = buttonPosition.x - position.x - 2f;
+ SerializedProperty nameProp = prop.FindPropertyRelative( "soundFXName" );
+ if ( AudioManager.GetGameObject() == null ) {
+ if ( disabledStyle == null ) {
+ disabledStyle = new GUIStyle();
+ disabledStyle.normal.textColor = Color.gray;
+ }
+ EditorGUI.LabelField(position, label.text, nameProp.stringValue, disabledStyle );
+ }
+ else {
+ string[] soundFXNames = AudioManager.GetSoundFXNames( nameProp.stringValue, out idx );
+
+ idx = EditorGUI.Popup( position, label.text, idx, soundFXNames );
+ nameProp.stringValue = AudioManager.NameMinusGroup( soundFXNames[idx] );
+ // play button
+ if ( GUI.Button( buttonPosition, "\u25BA" ) ) {
+ if ( AudioManager.IsSoundPlaying( nameProp.stringValue ) ) {
+ AudioManager.StopSound( nameProp.stringValue );
+ } else {
+ AudioManager.PlaySound( nameProp.stringValue );
+ }
+ }
+ buttonPosition.x += 22.0f;
+ // select audio manager
+ if ( GUI.Button( buttonPosition, "\u2630" ) ) {
+ Selection.activeGameObject = AudioManager.GetGameObject();
+ }
+
+ }
+ }
+}
+
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXRefPropertyDrawer.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXRefPropertyDrawer.cs.meta
new file mode 100644
index 0000000..a7af21a
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXRefPropertyDrawer.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6204bcaba636340b48858c9f10ab9016
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/MinMaxAttribute.cs b/Assets/Oculus/AudioManager/Scripts/Audio/MinMaxAttribute.cs
new file mode 100644
index 0000000..8992b7a
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/MinMaxAttribute.cs
@@ -0,0 +1,21 @@
+using UnityEngine;
+
+/*
+-----------------------
+
+ MinMaxAttribute
+
+-----------------------
+*/
+public class MinMaxAttribute : PropertyAttribute {
+ public float minDefaultVal = 1.0f;
+ public float maxDefaultVal = 1.0f;
+ public float min = 0.0f;
+ public float max = 1.0f;
+ public MinMaxAttribute( float minDefaultVal, float maxDefaultVal, float min, float max ) {
+ this.minDefaultVal = minDefaultVal;
+ this.maxDefaultVal = maxDefaultVal;
+ this.min = min;
+ this.max = max;
+ }
+}
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/MinMaxAttribute.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/MinMaxAttribute.cs.meta
new file mode 100644
index 0000000..5739109
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/MinMaxAttribute.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 15126f023faf44286a08bdb5bdbdb6e7
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/SoundEmitter.cs b/Assets/Oculus/AudioManager/Scripts/Audio/SoundEmitter.cs
new file mode 100644
index 0000000..46ae4d3
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/SoundEmitter.cs
@@ -0,0 +1,428 @@
+using UnityEngine;
+using UnityEngine.Audio;
+using System.Collections;
+
+/*
+-----------------------
+
+ SoundEmitter()
+
+-----------------------
+*/
+public class SoundEmitter : MonoBehaviour {
+ public enum FadeState {
+ Null,
+ FadingIn,
+ FadingOut,
+ Ducking,
+ }
+
+ // OPTIMIZE
+
+ public float volume { get { return audioSource.volume; } set { audioSource.volume = value; } }
+ public float pitch { get { return audioSource.pitch; } set { audioSource.pitch = value; } }
+ public AudioClip clip { get { return audioSource.clip; } set { audioSource.clip = value; } }
+ public float time { get { return audioSource.time; } set { audioSource.time = value; } }
+ public float length { get { return ( audioSource.clip != null ) ? audioSource.clip.length : 0.0f; } }
+ public bool loop { get { return audioSource.loop; } set { audioSource.loop = value; } }
+ public bool mute { get { return audioSource.mute; } set { audioSource.mute = value; } }
+ public AudioVelocityUpdateMode velocityUpdateMode { get { return audioSource.velocityUpdateMode; } set { audioSource.velocityUpdateMode = value; } }
+ public bool isPlaying { get { return audioSource.isPlaying; } }
+
+ public EmitterChannel channel = EmitterChannel.Reserved;
+ public bool disableSpatialization = false;
+ private FadeState state = FadeState.Null;
+ [System.NonSerialized]
+ [HideInInspector]
+ public AudioSource audioSource = null;
+ [System.NonSerialized]
+ [HideInInspector]
+ public SoundPriority priority = SoundPriority.Default;
+ [System.NonSerialized]
+ [HideInInspector]
+ public ONSPAudioSource osp = null;
+ [System.NonSerialized]
+ [HideInInspector]
+ public float endPlayTime = 0.0f;
+ private Transform lastParentTransform = null;
+ [System.NonSerialized]
+ [HideInInspector]
+ public float defaultVolume = 1.0f;
+ [System.NonSerialized]
+ [HideInInspector]
+ public Transform defaultParent = null;
+ [System.NonSerialized]
+ [HideInInspector]
+ public int originalIdx = -1;
+ [System.NonSerialized]
+ [HideInInspector]
+ public System.Action onFinished = null;
+ [System.NonSerialized]
+ [HideInInspector]
+ public System.Action onFinishedObject = null;
+ [System.NonSerialized]
+ [HideInInspector]
+ public object onFinishedParam;
+ [System.NonSerialized]
+ [HideInInspector]
+ public SoundGroup playingSoundGroup = null;
+
+ /*
+ -----------------------
+ Awake()
+ -----------------------
+ */
+ void Awake() {
+ // unity defaults to 'playOnAwake = true'
+ audioSource = GetComponent();
+ if ( audioSource == null ) {
+ audioSource = gameObject.AddComponent();
+ }
+ // is the spatialized audio enabled?
+ if ( AudioManager.enableSpatialization && !disableSpatialization ) {
+ osp = GetComponent();
+ if ( osp == null ) {
+ osp = gameObject.AddComponent();
+ }
+ }
+ audioSource.playOnAwake = false;
+ audioSource.Stop();
+ }
+
+ /*
+ -----------------------
+ SetPlayingSoundGroup()
+ -----------------------
+ */
+ public void SetPlayingSoundGroup( SoundGroup soundGroup ) {
+ playingSoundGroup = soundGroup;
+ if ( soundGroup != null ) {
+ soundGroup.IncrementPlayCount();
+ }
+ }
+
+ /*
+ -----------------------
+ SetOnFinished()
+ -----------------------
+ */
+ public void SetOnFinished( System.Action onFinished ) {
+ this.onFinished = onFinished;
+ }
+
+ /*
+ -----------------------
+ SetOnFinished()
+ -----------------------
+ */
+ public void SetOnFinished( System.Action onFinished, object obj ) {
+ onFinishedObject = onFinished;
+ onFinishedParam = obj;
+ }
+
+ /*
+ -----------------------
+ SetChannel()
+ -----------------------
+ */
+ public void SetChannel( int _channel ) {
+ channel = (EmitterChannel)_channel;
+ }
+
+ /*
+ -----------------------
+ SetDefaultParent()
+ -----------------------
+ */
+ public void SetDefaultParent( Transform parent ) {
+ defaultParent = parent;
+ }
+
+ /*
+ -----------------------
+ SetAudioMixer()
+ -----------------------
+ */
+ public void SetAudioMixer( AudioMixerGroup _mixer ) {
+ if ( audioSource != null ) {
+ audioSource.outputAudioMixerGroup = _mixer;
+ }
+ }
+
+ /*
+ -----------------------
+ IsPlaying()
+ -----------------------
+ */
+ public bool IsPlaying() {
+ if ( loop && audioSource.isPlaying ) {
+ return true;
+ }
+ return endPlayTime > Time.time;
+ }
+
+ /*
+ -----------------------
+ Play()
+ -----------------------
+ */
+ public void Play() {
+ // overrides everything
+ state = FadeState.Null;
+ endPlayTime = Time.time + length;
+ StopAllCoroutines();
+ audioSource.Play();
+ }
+
+ /*
+ -----------------------
+ Pause()
+ -----------------------
+ */
+ public void Pause() {
+ // overrides everything
+ state = FadeState.Null;
+ StopAllCoroutines();
+ audioSource.Pause();
+ }
+
+ /*
+ -----------------------
+ Stop()
+ -----------------------
+ */
+ public void Stop() {
+ // overrides everything
+ state = FadeState.Null;
+ StopAllCoroutines();
+ if ( audioSource != null ) {
+ audioSource.Stop();
+ }
+ if ( onFinished != null ) {
+ onFinished();
+ onFinished = null;
+ }
+ if ( onFinishedObject != null ) {
+ onFinishedObject( onFinishedParam );
+ onFinishedObject = null;
+ }
+ if ( playingSoundGroup != null ) {
+ playingSoundGroup.DecrementPlayCount();
+ playingSoundGroup = null;
+ }
+ }
+
+ /*
+ -----------------------
+ GetSampleTime()
+ -----------------------
+ */
+ int GetSampleTime() {
+ return audioSource.clip.samples - audioSource.timeSamples;
+ }
+
+ /*
+ -----------------------
+ ParentTo()
+ -----------------------
+ */
+ public void ParentTo( Transform parent ) {
+ if ( lastParentTransform != null ) {
+ Debug.LogError( "[SoundEmitter] You must detach the sound emitter before parenting to another object!" );
+ return;
+ }
+ lastParentTransform = transform.parent;
+ transform.parent = parent;
+ }
+
+ /*
+ -----------------------
+ DetachFromParent()
+ -----------------------
+ */
+ public void DetachFromParent() {
+ if ( lastParentTransform == null ) {
+ transform.parent = defaultParent;
+ return;
+ }
+ transform.parent = lastParentTransform;
+ lastParentTransform = null;
+ }
+
+ /*
+ -----------------------
+ ResetParent()
+ -----------------------
+ */
+ public void ResetParent( Transform parent ) {
+ transform.parent = parent;
+ lastParentTransform = null;
+ }
+
+ /*
+ -----------------------
+ SyncTo()
+ -----------------------
+ */
+ public void SyncTo( SoundEmitter other, float fadeTime, float toVolume ) {
+ StartCoroutine( DelayedSyncTo( other, fadeTime, toVolume ) );
+ }
+
+ /*
+ -----------------------
+ DelayedSyncTo()
+ have to wait until the end of frame to do proper sync'ing
+ -----------------------
+ */
+ IEnumerator DelayedSyncTo( SoundEmitter other, float fadeTime, float toVolume ) {
+ yield return new WaitForEndOfFrame();
+ //audio.timeSamples = other.GetSampleTime();
+ //audio.time = Mathf.Min( Mathf.Max( 0.0f, other.time - other.length ), other.time );
+ audioSource.time = other.time;
+ audioSource.Play();
+ FadeTo( fadeTime, toVolume );
+ }
+
+ /*
+ -----------------------
+ FadeTo()
+ -----------------------
+ */
+ public void FadeTo( float fadeTime, float toVolume ) {
+ //Log.Print( ">>> FADE TO: " + channel );
+
+
+ // don't override a fade out
+ if ( state == FadeState.FadingOut ) {
+ //Log.Print( " ....ABORTED" );
+ return;
+ }
+ state = FadeState.Ducking;
+ StopAllCoroutines();
+ StartCoroutine( FadeSoundChannelTo( fadeTime, toVolume ) );
+ }
+
+ /*
+ -----------------------
+ FadeIn()
+ -----------------------
+ */
+ public void FadeIn( float fadeTime, float defaultVolume ) {
+
+ //Log.Print( ">>> FADE IN: " + channel );
+ audioSource.volume = 0.0f;
+ state = FadeState.FadingIn;
+ StopAllCoroutines();
+ StartCoroutine( FadeSoundChannel( 0.0f, fadeTime, Fade.In, defaultVolume ) );
+ }
+
+ /*
+ -----------------------
+ FadeIn()
+ -----------------------
+ */
+ public void FadeIn( float fadeTime ) {
+
+ //Log.Print( ">>> FADE IN: " + channel );
+ audioSource.volume = 0.0f;
+ state = FadeState.FadingIn;
+ StopAllCoroutines();
+ StartCoroutine( FadeSoundChannel( 0.0f, fadeTime, Fade.In, defaultVolume ) );
+ }
+
+ /*
+ -----------------------
+ FadeOut()
+ -----------------------
+ */
+ public void FadeOut( float fadeTime ) {
+ //Log.Print( ">>> FADE OUT: " + channel );
+ if ( !audioSource.isPlaying ) {
+ //Log.Print( " ... SKIPPING" );
+ return;
+ }
+ state = FadeState.FadingOut;
+ StopAllCoroutines();
+ StartCoroutine( FadeSoundChannel( 0.0f, fadeTime, Fade.Out, audioSource.volume ) );
+ }
+
+ /*
+ -----------------------
+ FadeOutDelayed()
+ -----------------------
+ */
+ public void FadeOutDelayed( float delayedSecs, float fadeTime ) {
+ //Log.Print( ">>> FADE OUT DELAYED: " + channel );
+ if ( !audioSource.isPlaying ) {
+ //Log.Print( " ... SKIPPING" );
+ return;
+ }
+ state = FadeState.FadingOut;
+ StopAllCoroutines();
+ StartCoroutine( FadeSoundChannel( delayedSecs, fadeTime, Fade.Out, audioSource.volume ) );
+ }
+
+ /*
+ -----------------------
+ FadeSoundChannelTo()
+ -----------------------
+ */
+ IEnumerator FadeSoundChannelTo( float fadeTime, float toVolume ) {
+ float start = audioSource.volume;
+ float end = toVolume;
+ float startTime = Time.realtimeSinceStartup;
+ float elapsedTime = 0.0f;
+
+ while ( elapsedTime < fadeTime ) {
+ elapsedTime = Time.realtimeSinceStartup - startTime;
+ float t = elapsedTime / fadeTime;
+ audioSource.volume = Mathf.Lerp( start, end, t );
+ yield return 0;
+ }
+ state = FadeState.Null;
+ }
+
+ /*
+ -----------------------
+ FadeSoundChannel()
+ -----------------------
+ */
+ IEnumerator FadeSoundChannel( float delaySecs, float fadeTime, Fade fadeType, float defaultVolume ) {
+ if ( delaySecs > 0.0f ) {
+ yield return new WaitForSeconds( delaySecs );
+ }
+ float start = ( fadeType == Fade.In ) ? 0.0f : defaultVolume;
+ float end = ( fadeType == Fade.In ) ? defaultVolume : 0.0f;
+ bool restartPlay = false;
+
+ if ( fadeType == Fade.In ) {
+ if ( Time.time == 0.0f ) {
+ restartPlay = true;
+ }
+ audioSource.volume = 0.0f;
+ audioSource.Play();
+ }
+
+ float startTime = Time.realtimeSinceStartup;
+ float elapsedTime = 0.0f;
+
+ while ( elapsedTime < fadeTime ) {
+ elapsedTime = Time.realtimeSinceStartup - startTime;
+ float t = elapsedTime / fadeTime;
+ audioSource.volume = Mathf.Lerp( start, end, t );
+ yield return 0;
+ if ( restartPlay && ( Time.time > 0.0f ) ) {
+ audioSource.Play();
+ restartPlay = false;
+ }
+ if ( !audioSource.isPlaying ) {
+ break;
+ }
+ }
+
+ if ( fadeType == Fade.Out ) {
+ Stop();
+ }
+ state = FadeState.Null;
+ }
+}
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/SoundEmitter.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/SoundEmitter.cs.meta
new file mode 100644
index 0000000..64b29f4
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/SoundEmitter.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ecd24e91b27c645fc95f6c42115c13cc
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/SoundFX.cs b/Assets/Oculus/AudioManager/Scripts/Audio/SoundFX.cs
new file mode 100644
index 0000000..ee91090
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/SoundFX.cs
@@ -0,0 +1,306 @@
+using UnityEngine;
+using UnityEngine.Audio;
+
+public enum SoundFXNext {
+ Random = 0,
+ Sequential = 1,
+}
+
+public enum FreqHint {
+ None = 0,
+ Wide = 1,
+ Narrow = 2,
+}
+
+public enum SoundPriority {
+ VeryLow = -2,
+ Low = -1,
+ Default = 0,
+ High = 1,
+ VeryHigh = 2,
+}
+
+[System.Serializable]
+public class OSPProps {
+ public OSPProps() {
+ enableSpatialization = false;
+ useFastOverride = false;
+ gain = 0.0f;
+ enableInvSquare = false;
+ volumetric = 0.0f;
+ invSquareFalloff = new Vector2( 1.0f, 25.0f );
+ }
+
+ [Tooltip( "Set to true to play the sound FX spatialized with binaural HRTF, default = false")]
+ public bool enableSpatialization = false;
+ [Tooltip( "Play the sound FX with reflections, default = false")]
+ public bool useFastOverride = false;
+ [Tooltip( "Boost the gain on the spatialized sound FX, default = 0.0")]
+ [Range( 0.0f, 24.0f )]
+ public float gain = 0.0f;
+ [Tooltip("Enable Inverse Square attenuation curve, default = false")]
+ public bool enableInvSquare = false;
+ [Tooltip("Change the sound from point source (0.0f) to a spherical volume, default = 0.0")]
+ [Range(0.0f, 1000.0f)]
+ public float volumetric = 0.0f;
+ [Tooltip("Set the near and far falloff value for the OSP attenuation curve, default = 1.0")]
+ [MinMax ( 1.0f, 25.0f, 0.0f, 250.0f )]
+ public Vector2 invSquareFalloff = new Vector2( 1.0f, 25.0f );
+}
+
+/*
+-----------------------
+
+SoundFX
+
+-----------------------
+*/
+[System.Serializable]
+public class SoundFX {
+ public SoundFX() {
+ playback = SoundFXNext.Random;
+ volume = 1.0f;
+ pitchVariance = Vector2.one;
+ falloffDistance = new Vector2( 1.0f, 25.0f );
+ falloffCurve = AudioRolloffMode.Linear;
+ volumeFalloffCurve = new AnimationCurve( new Keyframe[2] { new Keyframe( 0f, 1.0f ), new Keyframe( 1f, 1f ) } );
+ reverbZoneMix = new AnimationCurve( new Keyframe[2] { new Keyframe( 0f, 1.0f ), new Keyframe( 1f, 1f ) } );
+ spread = 0.0f;
+ pctChanceToPlay = 1.0f;
+ priority = SoundPriority.Default;
+ delay = Vector2.zero;
+ looping = false;
+ ospProps = new OSPProps();
+ }
+
+ [Tooltip( "Each sound FX should have a unique name")]
+ public string name = string.Empty;
+ [Tooltip( "Sound diversity playback option when multiple audio clips are defined, default = Random")]
+ public SoundFXNext playback = SoundFXNext.Random;
+ [Tooltip( "Default volume for this sound FX, default = 1.0")]
+ [Range (0.0f, 1.0f)]
+ public float volume = 1.0f;
+ [Tooltip( "Random pitch variance each time a sound FX is played, default = 1.0 (none)")]
+ [MinMax ( 1.0f, 1.0f, 0.0f, 2.0f )]
+ public Vector2 pitchVariance = Vector2.one;
+ [Tooltip( "Falloff distance for the sound FX, default = 1m min to 25m max")]
+ [MinMax ( 1.0f, 25.0f, 0.0f, 250.0f )]
+ public Vector2 falloffDistance = new Vector2( 1.0f, 25.0f );
+ [Tooltip( "Volume falloff curve - sets how the sound FX attenuates over distance, default = Linear")]
+ public AudioRolloffMode falloffCurve = AudioRolloffMode.Linear;
+ [Tooltip( "Defines the custom volume falloff curve")]
+ public AnimationCurve volumeFalloffCurve = new AnimationCurve( new Keyframe[2] { new Keyframe( 0f, 1.0f ), new Keyframe( 1f, 1f ) } );
+ [Tooltip( "The amount by which the signal from the AudioSource will be mixed into the global reverb associated with the Reverb Zones | Valid range is 0.0 - 1.1, default = 1.0" )]
+ public AnimationCurve reverbZoneMix = new AnimationCurve( new Keyframe[2] { new Keyframe( 0f, 1.0f ), new Keyframe( 1f, 1f ) } );
+ [Tooltip( "Sets the spread angle (in degrees) of a 3d stereo or multichannel sound in speaker space, default = 0")]
+ [Range (0.0f, 360.0f)]
+ public float spread = 0.0f;
+ [Tooltip( "The percentage chance that this sound FX will play | 0.0 = none, 1.0 = 100%, default = 1.0")]
+ [Range (0.0f, 1.0f)]
+ public float pctChanceToPlay = 1.0f;
+ [Tooltip( "Sets the priority for this sound to play and/or to override a currently playing sound FX, default = Default")]
+ public SoundPriority priority = SoundPriority.Default;
+ [Tooltip( "Specifies the default delay when this sound FX is played, default = 0.0 secs")]
+ [MinMax ( 0.0f, 0.0f, 0.0f, 2.0f )]
+ public Vector2 delay = Vector2.zero; // this overrides any delay passed into PlaySound() or PlaySoundAt()
+ [Tooltip( "Set to true for the sound to loop continuously, default = false")]
+ public bool looping = false;
+ public OSPProps ospProps = new OSPProps();
+ [Tooltip( "List of the audio clips assigned to this sound FX")]
+ public AudioClip[] soundClips = new AudioClip[1];
+ // editor only - unfortunately if we set it not to serialize, we can't query it from the editor
+ public bool visibilityToggle = false;
+ // runtime vars
+ [System.NonSerialized]
+ private SoundGroup soundGroup = null;
+ private int lastIdx = -1;
+ private int playingIdx = -1;
+
+ public int Length { get { return soundClips.Length; } }
+ public bool IsValid { get { return ( ( soundClips.Length != 0 ) && ( soundClips[0] != null ) ); } }
+ public SoundGroup Group { get { return soundGroup; } set { soundGroup = value; } }
+ public float MaxFalloffDistSquared { get { return falloffDistance.y * falloffDistance.y; } }
+ public float GroupVolumeOverride { get { return ( soundGroup != null ) ? soundGroup.volumeOverride : 1.0f; } }
+
+ /*
+ -----------------------
+ GetClip()
+ -----------------------
+ */
+ public AudioClip GetClip() {
+ if ( soundClips.Length == 0 ) {
+ return null;
+ } else if ( soundClips.Length == 1 ) {
+ return soundClips[0];
+ }
+ if ( playback == SoundFXNext.Random ) {
+ // random, but don't pick the last one
+ int idx = Random.Range( 0, soundClips.Length );
+ while ( idx == lastIdx ) {
+ idx = Random.Range( 0, soundClips.Length );
+ }
+ lastIdx = idx;
+ return soundClips[idx];
+ } else {
+ // sequential
+ if ( ++lastIdx >= soundClips.Length ) {
+ lastIdx = 0;
+ }
+ return soundClips[lastIdx];
+ }
+ }
+
+ /*
+ -----------------------
+ GetMixerGroup()
+ -----------------------
+ */
+ public AudioMixerGroup GetMixerGroup( AudioMixerGroup defaultMixerGroup ) {
+ if ( soundGroup != null ) {
+ return ( soundGroup.mixerGroup != null ) ? soundGroup.mixerGroup : defaultMixerGroup;
+ }
+ return defaultMixerGroup;
+ }
+
+ /*
+ -----------------------
+ ReachedGroupPlayLimit()
+ -----------------------
+ */
+ public bool ReachedGroupPlayLimit() {
+ if ( soundGroup != null ) {
+ return !soundGroup.CanPlaySound();
+ }
+ return false;
+ }
+
+ /*
+ -----------------------
+ GetClipLength()
+ -----------------------
+ */
+ public float GetClipLength( int idx ) {
+ if ( ( idx == -1 ) || ( soundClips.Length == 0 ) || ( idx >= soundClips.Length ) || ( soundClips[idx] == null ) ) {
+ return 0.0f;
+ } else {
+ return soundClips[idx].length;
+ }
+ }
+
+ /*
+ -----------------------
+ GetPitch()
+ -----------------------
+ */
+ public float GetPitch() {
+ return Random.Range( pitchVariance.x, pitchVariance.y );
+ }
+
+ /*
+ -----------------------
+ PlaySound()
+ -----------------------
+ */
+ public int PlaySound( float delaySecs = 0.0f ) {
+ playingIdx = -1;
+
+ if ( !IsValid ) {
+ return playingIdx;
+ }
+
+ // check the random chance to play here to save the function calls
+ if ( ( pctChanceToPlay > 0.99f ) || ( Random.value < pctChanceToPlay ) ) {
+ if ( delay.y > 0.0f ) {
+ delaySecs = Random.Range( delay.x, delay.y );
+ }
+ playingIdx = AudioManager.PlaySound( this, EmitterChannel.Any, delaySecs );
+ }
+
+ return playingIdx;
+ }
+
+ /*
+ -----------------------
+ PlaySoundAt()
+ -----------------------
+ */
+ public int PlaySoundAt( Vector3 pos, float delaySecs = 0.0f, float volumeOverride = 1.0f, float pitchMultiplier = 1.0f ) {
+ playingIdx = -1;
+
+ if ( !IsValid ) {
+ return playingIdx;
+ }
+
+ // check the random chance to play here to save the function calls
+ if ( ( pctChanceToPlay > 0.99f ) || ( Random.value < pctChanceToPlay ) ) {
+ if ( delay.y > 0.0f ) {
+ delaySecs = Random.Range( delay.x, delay.y );
+ }
+ playingIdx = AudioManager.PlaySoundAt( pos, this, EmitterChannel.Any, delaySecs, volumeOverride, pitchMultiplier );
+ }
+
+ return playingIdx;
+ }
+
+ /*
+ -----------------------
+ SetOnFinished()
+ get a callback when the sound is finished playing
+ -----------------------
+ */
+ public void SetOnFinished( System.Action onFinished ) {
+ if ( playingIdx > -1 ) {
+ AudioManager.SetOnFinished( playingIdx, onFinished );
+ }
+ }
+
+ /*
+ -----------------------
+ SetOnFinished()
+ get a callback with an object parameter when the sound is finished playing
+ -----------------------
+ */
+ public void SetOnFinished( System.Action onFinished, object obj ) {
+ if ( playingIdx > -1 ) {
+ AudioManager.SetOnFinished( playingIdx, onFinished, obj );
+ }
+ }
+
+ /*
+ -----------------------
+ StopSound()
+ -----------------------
+ */
+ public bool StopSound() {
+ bool stopped = false;
+
+ if (playingIdx > -1){
+ stopped = AudioManager.StopSound(playingIdx);
+ playingIdx = -1;
+ }
+
+ return stopped;
+ }
+
+ /*
+ -----------------------
+ AttachToParent()
+ -----------------------
+ */
+ public void AttachToParent( Transform parent) {
+ if (playingIdx > -1) {
+ AudioManager.AttachSoundToParent(playingIdx, parent);
+ }
+ }
+
+ /*
+ -----------------------
+ DetachFromParent()
+ -----------------------
+ */
+ public void DetachFromParent() {
+ if (playingIdx > -1) {
+ AudioManager.DetachSoundFromParent(playingIdx);
+ }
+ }
+}
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/SoundFX.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/SoundFX.cs.meta
new file mode 100644
index 0000000..54131c1
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/SoundFX.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b0a1e5e7b5cff46a187b02100f0e4a3c
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/SoundFXRef.cs b/Assets/Oculus/AudioManager/Scripts/Audio/SoundFXRef.cs
new file mode 100644
index 0000000..51f1dc4
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/SoundFXRef.cs
@@ -0,0 +1,139 @@
+using UnityEngine;
+using System.Collections;
+
+/*
+-----------------------
+SoundFXRef
+just a references to a SoundFX.. all the SoundFX methods are called indirectly from here
+-----------------------
+*/
+[System.Serializable]
+public class SoundFXRef {
+
+ public string soundFXName = string.Empty;
+
+ private bool initialized = false;
+ private SoundFX soundFXCached = null;
+ public SoundFX soundFX {
+ get {
+ if ( !initialized ) {
+ Init();
+ }
+ return soundFXCached;
+ }
+ }
+ public string name { get { return soundFXName; } set { soundFXName = value; Init(); } }
+
+ /*
+ -----------------------
+ Init()
+ -----------------------
+ */
+ void Init() {
+ // look up the actual SoundFX object
+ soundFXCached = AudioManager.FindSoundFX( soundFXName );
+ if ( soundFXCached == null ) {
+ soundFXCached = AudioManager.FindSoundFX( string.Empty );
+ }
+ initialized = true;
+ }
+
+ /*
+ -----------------------
+ Length()
+ -----------------------
+ */
+ public int Length { get { return soundFX.Length; } }
+
+ /*
+ -----------------------
+ IsValid()
+ -----------------------
+ */
+ public bool IsValid { get { return soundFX.IsValid; } }
+
+ /*
+ -----------------------
+ GetClip()
+ -----------------------
+ */
+ public AudioClip GetClip() {
+ return soundFX.GetClip();
+ }
+
+ /*
+ -----------------------
+ GetClipLength()
+ -----------------------
+ */
+ public float GetClipLength( int idx ) {
+ return soundFX.GetClipLength( idx );
+ }
+
+ /*
+ -----------------------
+ PlaySound()
+ -----------------------
+ */
+ public int PlaySound( float delaySecs = 0.0f ) {
+ return soundFX.PlaySound( delaySecs );
+ }
+
+ /*
+ -----------------------
+ PlaySoundAt()
+ -----------------------
+ */
+ public int PlaySoundAt( Vector3 pos, float delaySecs = 0.0f, float volume = 1.0f, float pitchMultiplier = 1.0f ) {
+ return soundFX.PlaySoundAt( pos, delaySecs, volume, pitchMultiplier );
+ }
+
+ /*
+ -----------------------
+ SetOnFinished()
+ get a callback when the sound is finished playing
+ -----------------------
+ */
+ public void SetOnFinished( System.Action onFinished ) {
+ soundFX.SetOnFinished( onFinished );
+ }
+
+ /*
+ -----------------------
+ SetOnFinished()
+ get a callback with an object parameter when the sound is finished playing
+ -----------------------
+ */
+ public void SetOnFinished( System.Action onFinished, object obj ) {
+ soundFX.SetOnFinished( onFinished, obj );
+ }
+
+ /*
+ -----------------------
+ StopSound()
+ -----------------------
+ */
+ public bool StopSound() {
+ return soundFX.StopSound();
+ }
+
+ /*
+ -----------------------
+ AttachToParent()
+ -----------------------
+ */
+ public void AttachToParent( Transform parent)
+ {
+ soundFX.AttachToParent( parent);
+ }
+
+ /*
+ -----------------------
+ DetachFromParent()
+ -----------------------
+ */
+ public void DetachFromParent()
+ {
+ soundFX.DetachFromParent();
+ }
+}
diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/SoundFXRef.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/SoundFXRef.cs.meta
new file mode 100644
index 0000000..f371711
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Audio/SoundFXRef.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 48176edab546a48de9b146105d7c5f47
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Oculus/AudioManager/Scripts/Utils.meta b/Assets/Oculus/AudioManager/Scripts/Utils.meta
new file mode 100644
index 0000000..5bc01f0
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Utils.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 02268a883a27b9c4abac4ee978caec4d
+folderAsset: yes
+timeCreated: 1468506022
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Scripts/Utils/Editor.meta b/Assets/Oculus/AudioManager/Scripts/Utils/Editor.meta
new file mode 100644
index 0000000..a7fb901
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Utils/Editor.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: b43e7f73d4ffc2545a17b938f63e6bc0
+folderAsset: yes
+timeCreated: 1468507225
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Scripts/Utils/Editor/DrawerInspectorNote.cs b/Assets/Oculus/AudioManager/Scripts/Utils/Editor/DrawerInspectorNote.cs
new file mode 100644
index 0000000..db94d65
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Utils/Editor/DrawerInspectorNote.cs
@@ -0,0 +1,77 @@
+using UnityEngine;
+using UnityEditor;
+using System.Collections;
+using System.Collections.Generic;
+
+[CustomPropertyDrawer(typeof(InspectorNoteAttribute))]
+public class DrawerInspectorNote : DecoratorDrawer
+{
+ public override void OnGUI( Rect position )
+ {
+ InspectorNoteAttribute note = attribute as InspectorNoteAttribute;
+
+ // our header is always present
+ Rect posLabel = position;
+ posLabel.y += 13;
+ posLabel.x -= 2;
+ posLabel.height += 13;
+ EditorGUI.LabelField(posLabel, note.header, EditorStyles.whiteLargeLabel);
+
+ // do we have a message too?
+ if (!string.IsNullOrEmpty(note.message))
+ {
+ Color color = GUI.color;
+ Color faded = color;
+ faded.a = 0.6f;
+
+ Rect posExplain = posLabel;
+ posExplain.y += 15;
+ GUI.color = faded;
+ EditorGUI.LabelField(posExplain, note.message, EditorStyles.whiteMiniLabel);
+ GUI.color = color;
+ }
+
+ Rect posLine = position;
+ posLine.y += string.IsNullOrEmpty(note.message) ? 30 : 42;
+ posLine.height = 1f;
+ GUI.Box(posLine, "");
+ }
+
+ public override float GetHeight() {
+ InspectorNoteAttribute note = attribute as InspectorNoteAttribute;
+ return string.IsNullOrEmpty( note.message ) ? 38 : 50;
+ }
+}
+
+[CustomPropertyDrawer( typeof( InspectorCommentAttribute ) )]
+public class DrawerInspectorComment : DecoratorDrawer {
+ public override void OnGUI( Rect position ) {
+ InspectorCommentAttribute comment = attribute as InspectorCommentAttribute;
+
+ // our header is always present
+ Rect posLabel = position;
+ //posLabel.y += 13;
+ //posLabel.x -= 2;
+ //posLabel.height += 13;
+ //EditorGUI.LabelField( posLabel, comment.header, EditorStyles.whiteLargeLabel );
+
+ // do we have a message too?
+ if ( !string.IsNullOrEmpty( comment.message ) ) {
+ Color color = GUI.color;
+ Color faded = color;
+ faded.a = 0.6f;
+
+ Rect posExplain = posLabel;
+ posExplain.y += 15;
+ GUI.color = faded;
+ EditorGUI.LabelField( posExplain, comment.message, EditorStyles.whiteMiniLabel );
+ GUI.color = color;
+ }
+
+ }
+
+ public override float GetHeight() {
+ InspectorNoteAttribute note = attribute as InspectorNoteAttribute;
+ return string.IsNullOrEmpty( note.message ) ? 38 : 50;
+ }
+}
diff --git a/Assets/Oculus/AudioManager/Scripts/Utils/Editor/DrawerInspectorNote.cs.meta b/Assets/Oculus/AudioManager/Scripts/Utils/Editor/DrawerInspectorNote.cs.meta
new file mode 100644
index 0000000..591e271
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Utils/Editor/DrawerInspectorNote.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f244e745a5bf8412d9d81d43dff35cf5
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Oculus/AudioManager/Scripts/Utils/FastList.cs b/Assets/Oculus/AudioManager/Scripts/Utils/FastList.cs
new file mode 100644
index 0000000..601c393
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Utils/FastList.cs
@@ -0,0 +1,283 @@
+using UnityEngine;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+public class FastList {
+
+ ///
+ /// Comparison function should return -1 if left is less than right, 1 if left is greater than right, and 0 if they match.
+ ///
+ public delegate int CompareFunc(T left, T right);
+
+
+ public T[] array = null;
+ public int size = 0;
+
+ public FastList () {
+ }
+
+ public FastList(int size) {
+ if (size > 0) {
+ this.size = 0;
+ array = new T[size];
+ }
+ else {
+ this.size = 0;
+ }
+ }
+
+ public int Count {
+ get { return size;}
+ set { }
+ }
+
+ public T this[int i] {
+ get { return array[i];}
+ set { array[i] = value;}
+ }
+
+ //Add item to end of list.
+ public void Add(T item) {
+ if (array == null || size == array.Length) {
+ Allocate();
+ }
+ array[size] = item;
+ size++;
+ }
+
+ //Add item to end of list if it is unique.
+ public void AddUnique( T item ) {
+ if ( array == null || size == array.Length ) {
+ Allocate();
+ }
+ if ( !Contains( item ) ) {
+ array[size] = item;
+ size++;
+ }
+ }
+
+ //Add items to the end of the list
+ public void AddRange( IEnumerable items ) {
+ foreach ( T item in items ) {
+ Add( item );
+ }
+ }
+
+ //Insert item at specified index
+ public void Insert(int index, T item) {
+ if (array == null || size == array.Length) {
+ Allocate();
+ }
+ if (index < size) {
+ //move things back 1
+ for (int i = size; i > index; i--) {
+ array[i] = array[i-1];
+ }
+ array[index] = item;
+ size++;
+ }
+ else Add(item);
+ }
+
+ //Removes specified item and keeps everything else in order
+ public bool Remove(T item) {
+ if (array != null) {
+ for (int i = 0; i < size; i++) {
+ if (item.Equals(array[i])) { //found it, push everything up
+ size--;
+ for (int j = i; j < size; j++) {
+ array[j] = array[j+1];
+ }
+ array[size] = default(T);
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ //Removes item at specified index while keeping everything else in order
+ //O(n)
+ public void RemoveAt(int index) {
+ if (array != null && size > 0 && index < size) {
+ size--;
+ for (int i = index; i < size; i++) {
+ array[i] = array[i+1];
+ }
+ array[size] = default(T);
+ }
+ }
+
+ //Removes the specified item from the list and replaces with last item. Return true if removed, false if not found.
+ public bool RemoveFast(T item) {
+ if (array != null) {
+ for (int i = 0; i < size; i++) {
+ if ( item.Equals( array[i] )) { //found
+ //Move last item here
+ if (i < (size - 1)) {
+ T lastItem = array[size-1];
+ array[size-1] = default(T);
+ array[i] = lastItem;
+ } else {
+ array[i] = default(T);
+ }
+ size--;
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ //Removes item at specified index and replace with last item.
+ public void RemoveAtFast(int index) {
+ if (array != null && index < size && index >= 0) {
+ //last element
+ if (index == size - 1) {
+ array[index] = default(T);
+ }
+ else {
+ T lastItem = array[size - 1];
+ array[index] = lastItem;
+ array[size - 1] = default(T);
+ }
+ size--;
+
+ }
+ }
+
+ //Return whether an item is contained within the list
+ //O(n)
+ public bool Contains(T item) {
+ if (array == null || size <= 0 ) return false;
+ for (int i = 0; i < size; i++) {
+ if (array[i].Equals(item)) { return true;}
+ }
+ return false;
+ }
+
+ //Returns index of specified item, or -1 if not found.
+ //O(n)
+ public int IndexOf(T item) {
+ if (size <= 0 || array == null) { return -1;}
+ for (int i = 0; i < size; i++) {
+ if (item.Equals(array[i])) { return i;}
+ }
+ return -1;
+ }
+
+ public T Pop() {
+ if (array != null && size > 0) {
+ T lastItem = array[size-1];
+ array[size-1] = default(T);
+ size--;
+ return lastItem;
+ }
+
+ return default(T);
+ }
+
+ public T[] ToArray() {
+ Trim();
+ return array;
+ }
+
+ public void Sort (CompareFunc comparer) {
+ int start = 0;
+ int end = size - 1;
+ bool changed = true;
+
+ while (changed) {
+ changed = false;
+
+ for (int i = start; i < end; i++) {
+
+ if (comparer(array[i], array[i + 1]) > 0) {
+ T temp = array[i];
+ array[i] = array[i+1];
+ array[i+1] = temp;
+ changed = true;
+ }
+ else if (!changed) {
+ start = (i==0) ? 0 : i-1;
+ }
+ }
+ }
+ }
+
+ public void InsertionSort(CompareFunc comparer) {
+ for (int i = 1; i < size; i++) {
+ T curr = array[i];
+ int j = i;
+ while (j > 0 && comparer(array[j - 1], curr) > 0) {
+ array[j] = array[j-1];
+ j--;
+ }
+ array[j] = curr;
+ }
+ }
+
+ public IEnumerator GetEnumerator() {
+ if (array != null) {
+ for (int i = 0; i < size; i++) {
+ yield return array[i];
+ }
+ }
+ }
+
+ public T Find(Predicate match) {
+ if (match != null) {
+ if (array != null) {
+ for (int i = 0; i < size; i++) {
+ if (match(array[i])) { return array[i];}
+ }
+ }
+ }
+ return default(T);
+ }
+
+ //Allocate more space to internal array.
+ void Allocate() {
+ T[] newArray;
+ if (array == null) {
+ newArray = new T[32];
+ }
+ else {
+ newArray = new T[Mathf.Max(array.Length << 1, 32)];
+ }
+ if (array != null && size > 0) {
+ array.CopyTo(newArray, 0);
+ }
+
+ array = newArray;
+ }
+
+
+ void Trim() {
+ if (size > 0) {
+ T[] newArray = new T[size];
+ for (int i = 0; i < size; i++) {
+ newArray[i] = array[i];
+ }
+ array = newArray;
+ }
+ else {
+ array = null;
+ }
+ }
+
+ //Set size to 0, does not delete array from memory
+ public void Clear() {
+ size = 0;
+ }
+
+ //Delete array from memory
+ public void Release() {
+ Clear();
+ array = null;
+ }
+
+
+
+}
diff --git a/Assets/Oculus/AudioManager/Scripts/Utils/FastList.cs.meta b/Assets/Oculus/AudioManager/Scripts/Utils/FastList.cs.meta
new file mode 100644
index 0000000..708d34f
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Utils/FastList.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 5ad95fb7eea735748bd34c963525ea21
+timeCreated: 1432749689
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/AudioManager/Scripts/Utils/InspectorNoteAttribute.cs b/Assets/Oculus/AudioManager/Scripts/Utils/InspectorNoteAttribute.cs
new file mode 100644
index 0000000..0c5db7b
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Utils/InspectorNoteAttribute.cs
@@ -0,0 +1,35 @@
+using UnityEngine;
+
+/*
+-----------------------
+
+ InspectorNoteAttribute()
+
+-----------------------
+*/
+public class InspectorNoteAttribute : PropertyAttribute
+{
+ public readonly string header;
+ public readonly string message;
+
+ public InspectorNoteAttribute(string header, string message = "")
+ {
+ this.header = header;
+ this.message = message;
+ }
+}
+
+/*
+-----------------------
+
+ InspectorCommentAttribute()
+
+-----------------------
+*/
+public class InspectorCommentAttribute : PropertyAttribute {
+ public readonly string message;
+
+ public InspectorCommentAttribute( string message = "" ) {
+ this.message = message;
+ }
+}
diff --git a/Assets/Oculus/AudioManager/Scripts/Utils/InspectorNoteAttribute.cs.meta b/Assets/Oculus/AudioManager/Scripts/Utils/InspectorNoteAttribute.cs.meta
new file mode 100644
index 0000000..f6e86d6
--- /dev/null
+++ b/Assets/Oculus/AudioManager/Scripts/Utils/InspectorNoteAttribute.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4616bbe65d311471f8d71174295f4986
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Oculus/Avatar.meta b/Assets/Oculus/Avatar.meta
new file mode 100644
index 0000000..8868f27
--- /dev/null
+++ b/Assets/Oculus/Avatar.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 9f086770200dde84c98766f2308b6877
+folderAsset: yes
+timeCreated: 1538788975
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Content.meta b/Assets/Oculus/Avatar/Content.meta
new file mode 100644
index 0000000..6257510
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: b7b5af4818686f84f844c1ae9df0f700
+folderAsset: yes
+timeCreated: 1466716731
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Content/Materials.meta b/Assets/Oculus/Avatar/Content/Materials.meta
new file mode 100644
index 0000000..ce02c64
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Materials.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 03c5cda4272cb2746a668ce131f04c0f
+folderAsset: yes
+timeCreated: 1466717994
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarMaterialStateShader.cginc b/Assets/Oculus/Avatar/Content/Materials/AvatarMaterialStateShader.cginc
new file mode 100644
index 0000000..34c31b7
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Materials/AvatarMaterialStateShader.cginc
@@ -0,0 +1,318 @@
+#ifndef AVATAR_UTIL_CG_INCLUDED
+#define AVATAR_UTIL_CG_INCLUDED
+
+#include "UnityCG.cginc"
+
+#define SAMPLE_MODE_COLOR 0
+#define SAMPLE_MODE_TEXTURE 1
+#define SAMPLE_MODE_TEXTURE_SINGLE_CHANNEL 2
+#define SAMPLE_MODE_PARALLAX 3
+#define SAMPLE_MODE_RSRM 4
+
+#define MASK_TYPE_NONE 0
+#define MASK_TYPE_POSITIONAL 1
+#define MASK_TYPE_REFLECTION 2
+#define MASK_TYPE_FRESNEL 3
+#define MASK_TYPE_PULSE 4
+
+#define BLEND_MODE_ADD 0
+#define BLEND_MODE_MULTIPLY 1
+
+#ifdef LAYERS_1
+#define LAYER_COUNT 1
+#elif LAYERS_2
+#define LAYER_COUNT 2
+#elif LAYERS_3
+#define LAYER_COUNT 3
+#elif LAYERS_4
+#define LAYER_COUNT 4
+#elif LAYERS_5
+#define LAYER_COUNT 5
+#elif LAYERS_6
+#define LAYER_COUNT 6
+#elif LAYERS_7
+#define LAYER_COUNT 7
+#elif LAYERS_8
+#define LAYER_COUNT 8
+#endif
+
+#define DECLARE_LAYER_UNIFORMS(index) \
+ int _LayerSampleMode##index; \
+ int _LayerBlendMode##index; \
+ int _LayerMaskType##index; \
+ fixed4 _LayerColor##index; \
+ sampler2D _LayerSurface##index; \
+ float4 _LayerSurface##index##_ST; \
+ float4 _LayerSampleParameters##index; \
+ float4 _LayerMaskParameters##index; \
+ float4 _LayerMaskAxis##index;
+
+DECLARE_LAYER_UNIFORMS(0)
+DECLARE_LAYER_UNIFORMS(1)
+DECLARE_LAYER_UNIFORMS(2)
+DECLARE_LAYER_UNIFORMS(3)
+DECLARE_LAYER_UNIFORMS(4)
+DECLARE_LAYER_UNIFORMS(5)
+DECLARE_LAYER_UNIFORMS(6)
+DECLARE_LAYER_UNIFORMS(7)
+
+struct VertexOutput
+{
+ float4 pos : SV_POSITION;
+ float2 texcoord : TEXCOORD0;
+ float3 worldPos : TEXCOORD1;
+ float3 worldNormal : TEXCOORD2;
+ float3 viewDir : TEXCOORD3;
+ float4 vertColor : COLOR;
+
+#if NORMAL_MAP_ON || PARALLAX_ON
+ float3 worldTangent : TANGENT;
+ float3 worldBitangent : TEXCOORD5;
+#endif
+};
+
+float _Alpha;
+int _BaseMaskType;
+float4 _BaseMaskParameters;
+float4 _BaseMaskAxis;
+fixed4 _DarkMultiplier;
+fixed4 _BaseColor;
+sampler2D _AlphaMask;
+float4 _AlphaMask_ST;
+sampler2D _AlphaMask2;
+float4 _AlphaMask2_ST;
+sampler2D _NormalMap;
+float4 _NormalMap_ST;
+sampler2D _ParallaxMap;
+float4 _ParallaxMap_ST;
+sampler2D _RoughnessMap;
+float4 _RoughnessMap_ST;
+float4x4 _ProjectorWorldToLocal;
+
+VertexOutput vert(appdata_full v)
+{
+ VertexOutput o;
+ UNITY_INITIALIZE_OUTPUT(VertexOutput, o);
+
+ o.texcoord = v.texcoord.xy;
+ o.worldPos = mul(unity_ObjectToWorld, v.vertex);
+ o.vertColor = v.color;
+ o.viewDir = normalize(_WorldSpaceCameraPos.xyz - o.worldPos);
+ o.worldNormal = normalize(mul(unity_ObjectToWorld, float4(v.normal, 0.0)).xyz);
+
+#if NORMAL_MAP_ON || PARALLAX_ON
+ o.worldTangent = normalize(mul(unity_ObjectToWorld, float4(v.tangent.xyz, 0.0)).xyz);
+ o.worldBitangent = normalize(cross(o.worldNormal, o.worldTangent) * v.tangent.w);
+#endif
+
+ o.pos = UnityObjectToClipPos(v.vertex);
+ return o;
+}
+
+#ifndef NORMAL_MAP_ON
+#define COMPUTE_NORMAL IN.worldNormal
+#else
+#define COMPUTE_NORMAL normalize(mul(lerp(float3(0, 0, 1), surfaceNormal, normalMapStrength), tangentTransform))
+#endif
+
+float3 ComputeColor(
+ VertexOutput IN,
+ float2 uv,
+#if PARALLAX_ON || NORMAL_MAP_ON
+ float3x3 tangentTransform,
+#endif
+#ifdef NORMAL_MAP_ON
+ float3 surfaceNormal,
+#endif
+ sampler2D surface,
+ float4 surface_ST,
+ fixed4 color,
+ int sampleMode,
+ float4 sampleParameters
+) {
+ if (sampleMode == SAMPLE_MODE_TEXTURE) {
+ float2 panning = _Time.g * sampleParameters.xy;
+ return tex2D(surface, (uv + panning) * surface_ST.xy + surface_ST.zw).rgb * color.rgb;
+ }
+ else if (sampleMode == SAMPLE_MODE_TEXTURE_SINGLE_CHANNEL) {
+ float4 channelMask = sampleParameters;
+ float4 channels = tex2D(surface, uv * surface_ST.xy + surface_ST.zw);
+ return dot(channels, channelMask) * color.rgb;
+ }
+#ifdef PARALLAX_ON
+ else if (sampleMode == SAMPLE_MODE_PARALLAX) {
+ float parallaxMinHeight = sampleParameters.x;
+ float parallaxMaxHeight = sampleParameters.y;
+ float parallaxValue = tex2D(_ParallaxMap, TRANSFORM_TEX(uv, _ParallaxMap)).r;
+ float scaledHeight = lerp(parallaxMinHeight, parallaxMaxHeight, parallaxValue);
+ float2 parallaxUV = mul(tangentTransform, IN.viewDir).xy * scaledHeight;
+ return tex2D(surface, (uv * surface_ST.xy + surface_ST.zw) + parallaxUV).rgb * color.rgb;
+ }
+#endif
+ else if (sampleMode == SAMPLE_MODE_RSRM) {
+ float roughnessMin = sampleParameters.x;
+ float roughnessMax = sampleParameters.y;
+#ifdef ROUGHNESS_ON
+ float roughnessValue = tex2D(_RoughnessMap, TRANSFORM_TEX(uv, _RoughnessMap)).r;
+ float scaledRoughness = lerp(roughnessMin, roughnessMax, roughnessValue);
+#else
+ float scaledRoughness = roughnessMin;
+#endif
+
+#ifdef NORMAL_MAP_ON
+ float normalMapStrength = sampleParameters.z;
+#endif
+ float3 viewReflect = reflect(-IN.viewDir, COMPUTE_NORMAL);
+ float viewAngle = viewReflect.y * 0.5 + 0.5;
+ return tex2D(surface, float2(scaledRoughness, viewAngle)).rgb * color.rgb;
+ }
+ return color.rgb;
+}
+
+float ComputeMask(
+ VertexOutput IN,
+#ifdef NORMAL_MAP_ON
+ float3x3 tangentTransform,
+ float3 surfaceNormal,
+#endif
+ int maskType,
+ float4 layerParameters,
+ float3 maskAxis
+) {
+ if (maskType == MASK_TYPE_POSITIONAL) {
+ float centerDistance = layerParameters.x;
+ float fadeAbove = layerParameters.y;
+ float fadeBelow = layerParameters.z;
+ float3 objPos = mul(unity_WorldToObject, float4(IN.worldPos, 1.0)).xyz;
+ float d = dot(objPos, maskAxis);
+ if (d > centerDistance) {
+ return saturate(1.0 - (d - centerDistance) / fadeAbove);
+ }
+ else {
+ return saturate(1.0 - (centerDistance - d) / fadeBelow);
+ }
+ }
+ else if (maskType == MASK_TYPE_REFLECTION) {
+ float fadeStart = layerParameters.x;
+ float fadeEnd = layerParameters.y;
+#ifdef NORMAL_MAP_ON
+ float normalMapStrength = layerParameters.z;
+#endif
+ float power = layerParameters.w;
+ float3 viewReflect = reflect(-IN.viewDir, COMPUTE_NORMAL);
+ float d = max(0.0, dot(viewReflect, maskAxis));
+ return saturate(1.0 - (d - fadeStart) / (fadeEnd - fadeStart));
+ }
+ else if (maskType == MASK_TYPE_FRESNEL) {
+ float power = layerParameters.x;
+ float fadeStart = layerParameters.y;
+ float fadeEnd = layerParameters.z;
+#ifdef NORMAL_MAP_ON
+ float normalMapStrength = layerParameters.w;
+#endif
+ float d = saturate(1.0 - max(0.0, dot(IN.viewDir, COMPUTE_NORMAL)));
+ float p = pow(d, power);
+ return saturate(lerp(fadeStart, fadeEnd, p));
+ }
+ else if (maskType == MASK_TYPE_PULSE) {
+ float distance = layerParameters.x;
+ float speed = layerParameters.y;
+ float power = layerParameters.z;
+ float3 objPos = mul(unity_WorldToObject, float4(IN.worldPos, 1.0)).xyz;
+ float d = dot(objPos, maskAxis);
+ float theta = 6.2831 * frac((d - _Time.g * speed) / distance);
+ return saturate(pow((sin(theta) * 0.5 + 0.5), power));
+ }
+ else {
+ return 1.0;
+ }
+}
+
+float3 ComputeBlend(float3 source, float3 blend, float mask, int blendMode) {
+ if (blendMode == BLEND_MODE_MULTIPLY) {
+ return source * (blend * mask);
+ }
+ else {
+ return source + (blend * mask);
+ }
+}
+
+float4 ComputeSurface(VertexOutput IN)
+{
+#if PROJECTOR_ON
+ float3 projectorPos = mul(_ProjectorWorldToLocal, float4(IN.worldPos, 1.0)).xyz;
+ if (abs(projectorPos.x) > 1.0 || abs(projectorPos.y) > 1.0 || abs(projectorPos.z) > 1.0)
+ {
+ discard;
+ }
+ float2 uv = projectorPos.xy * 0.5 + 0.5;
+#else
+ float2 uv = IN.texcoord.xy;
+#endif
+
+ fixed4 c = _BaseColor;
+ IN.worldNormal = normalize(IN.worldNormal);
+
+#if PARALLAX_ON || NORMAL_MAP_ON
+ float3x3 tangentTransform = float3x3(IN.worldTangent, IN.worldBitangent, IN.worldNormal);
+#endif
+
+#ifdef NORMAL_MAP_ON
+ float3 surfaceNormal = UnpackNormal(tex2D(_NormalMap, TRANSFORM_TEX(uv, _NormalMap)));
+#endif
+
+#if PARALLAX_ON || NORMAL_MAP_ON
+#ifndef NORMAL_MAP_ON
+#define COLOR_INPUTS IN, uv, tangentTransform
+#define MASK_INPUTS IN
+#else
+#define COLOR_INPUTS IN, uv, tangentTransform, surfaceNormal
+#define MASK_INPUTS IN, tangentTransform, surfaceNormal
+#endif
+#else
+#define COLOR_INPUTS IN, uv
+#define MASK_INPUTS IN
+#endif
+
+#define LAYER_COLOR(index) ComputeColor(COLOR_INPUTS, _LayerSurface##index, _LayerSurface##index##_ST, _LayerColor##index, _LayerSampleMode##index, _LayerSampleParameters##index)
+#define LAYER_MASK(index) ComputeMask(MASK_INPUTS, _LayerMaskType##index, _LayerMaskParameters##index, _LayerMaskAxis##index##.xyz)
+#define LAYER_BLEND(index, c) ComputeBlend(c, LAYER_COLOR(index), LAYER_MASK(index), _LayerBlendMode##index)
+
+ c.rgb = LAYER_BLEND(0, c.rgb);
+#if LAYER_COUNT > 1
+ c.rgb = LAYER_BLEND(1, c.rgb);
+#endif
+#if LAYER_COUNT > 2
+ c.rgb = LAYER_BLEND(2, c.rgb);
+#endif
+#if LAYER_COUNT > 3
+ c.rgb = LAYER_BLEND(3, c.rgb);
+#endif
+#if LAYER_COUNT > 4
+ c.rgb = LAYER_BLEND(4, c.rgb);
+#endif
+#if LAYER_COUNT > 5
+ c.rgb = LAYER_BLEND(5, c.rgb);
+#endif
+#if LAYER_COUNT > 6
+ c.rgb = LAYER_BLEND(6, c.rgb);
+#endif
+#if LAYER_COUNT > 7
+ c.rgb = LAYER_BLEND(7, c.rgb);
+#endif
+
+#ifdef VERTALPHA_ON
+ float scaledValue = IN.vertColor.a * 2.0;
+ float alpha0weight = max(0.0, 1.0 - scaledValue);
+ float alpha2weight = max(0.0, scaledValue - 1.0);
+ float alpha1weight = 1.0 - alpha0weight - alpha2weight;
+ c.a = _Alpha * c.a * (tex2D(_AlphaMask, TRANSFORM_TEX(uv, _AlphaMask)).r * alpha1weight + tex2D(_AlphaMask2, TRANSFORM_TEX(uv, _AlphaMask2)).r * alpha2weight + alpha0weight) * ComputeMask(MASK_INPUTS, _BaseMaskType, _BaseMaskParameters, _BaseMaskAxis);
+#else
+ c.a = _Alpha * c.a * tex2D(_AlphaMask, TRANSFORM_TEX(uv, _AlphaMask)).r * IN.vertColor.a * ComputeMask(MASK_INPUTS, _BaseMaskType, _BaseMaskParameters, _BaseMaskAxis);
+#endif
+ c.rgb = lerp(c.rgb, c.rgb * _DarkMultiplier, IN.vertColor.r);
+
+ return c;
+}
+
+#endif
diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarMaterialStateShader.cginc.meta b/Assets/Oculus/Avatar/Content/Materials/AvatarMaterialStateShader.cginc.meta
new file mode 100644
index 0000000..1abee25
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Materials/AvatarMaterialStateShader.cginc.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 462c52c09cf9a244bbc11a016d763ea7
+timeCreated: 1443137462
+licenseType: Store
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShader.shader b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShader.shader
new file mode 100644
index 0000000..eebfd1b
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShader.shader
@@ -0,0 +1,141 @@
+Shader "OvrAvatar/AvatarSurfaceShader" {
+ Properties{
+ // Global parameters
+ _Alpha("Alpha", Range(0.0, 1.0)) = 1.0
+ _DarkMultiplier("Dark Multiplier", Color) = (0.6, 0.6, 0.6, 1.0)
+ _BaseColor("Base Color", Color) = (0.0, 0.0, 0.0, 0.0)
+ _BaseMaskType("Base Mask Type", Int) = 0
+ _BaseMaskParameters("Base Mask Parameters", Vector) = (0, 0, 0, 0)
+ _BaseMaskAxis("Base Mask Axis", Vector) = (0, 1, 0, 0)
+ _AlphaMask("Alpha Mask", 2D) = "white" {}
+ _NormalMap("Normal Map", 2D) = "" {}
+ _ParallaxMap("Parallax Map", 2D) = "" {}
+ _RoughnessMap("Roughness Map", 2D) = "" {}
+
+ // Layer 0 parameters
+ _LayerSampleMode0("Layer Sample Mode 0", Int) = 0
+ _LayerBlendMode0("Layer Blend Mode 0", Int) = 0
+ _LayerMaskType0("Layer Mask Type 0", Int) = 0
+ _LayerColor0("Layer Color 0", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface0("Layer Surface 0", 2D) = "" {}
+ _LayerSampleParameters0("Layer Sample Parameters 0", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters0("Layer Mask Parameters 0", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis0("Layer Mask Axis 0", Vector) = (0, 1, 0, 0)
+
+ // Layer 1 parameters
+ _LayerSampleMode1("Layer Sample Mode 1", Int) = 0
+ _LayerBlendMode1("Layer Blend Mode 1", Int) = 0
+ _LayerMaskType1("Layer Mask Type 1", Int) = 0
+ _LayerColor1("Layer Color 1", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface1("Layer Surface 1", 2D) = "" {}
+ _LayerSampleParameters1("Layer Sample Parameters 1", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters1("Layer Mask Parameters 1", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis1("Layer Mask Axis 1", Vector) = (0, 1, 0, 0)
+
+ // Layer 2 parameters
+ _LayerSampleMode2("Layer Sample Mode 2", Int) = 0
+ _LayerBlendMode2("Layer Blend Mode 2", Int) = 0
+ _LayerMaskType2("Layer Mask Type 2", Int) = 0
+ _LayerColor2("Layer Color 2", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface2("Layer Surface 2", 2D) = "" {}
+ _LayerSampleParameters2("Layer Sample Parameters 2", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters2("Layer Mask Parameters 2", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis2("Layer Mask Axis 2", Vector) = (0, 1, 0, 0)
+
+ // Layer 3 parameters
+ _LayerSampleMode3("Layer Sample Mode 3", Int) = 0
+ _LayerBlendMode3("Layer Blend Mode 3", Int) = 0
+ _LayerMaskType3("Layer Mask Type 3", Int) = 0
+ _LayerColor3("Layer Color 3", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface3("Layer Surface 3", 2D) = "" {}
+ _LayerSampleParameters3("Layer Sample Parameters 3", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters3("Layer Mask Parameters 3", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis3("Layer Mask Axis 3", Vector) = (0, 1, 0, 0)
+
+ // Layer 4 parameters
+ _LayerSampleMode4("Layer Sample Mode 4", Int) = 0
+ _LayerBlendMode4("Layer Blend Mode 4", Int) = 0
+ _LayerMaskType4("Layer Mask Type 4", Int) = 0
+ _LayerColor4("Layer Color 4", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface4("Layer Surface 4", 2D) = "" {}
+ _LayerSampleParameters4("Layer Sample Parameters 4", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters4("Layer Mask Parameters 4", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis4("Layer Mask Axis 4", Vector) = (0, 1, 0, 0)
+
+ // Layer 5 parameters
+ _LayerSampleMode5("Layer Sample Mode 5", Int) = 0
+ _LayerBlendMode5("Layer Blend Mode 5", Int) = 0
+ _LayerMaskType5("Layer Mask Type 5", Int) = 0
+ _LayerColor5("Layer Color 5", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface5("Layer Surface 5", 2D) = "" {}
+ _LayerSampleParameters5("Layer Sample Parameters 5", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters5("Layer Mask Parameters 5", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis5("Layer Mask Axis 5", Vector) = (0, 1, 0, 0)
+
+ // Layer 6 parameters
+ _LayerSampleMode6("Layer Sample Mode 6", Int) = 0
+ _LayerBlendMode6("Layer Blend Mode 6", Int) = 0
+ _LayerMaskType6("Layer Mask Type 6", Int) = 0
+ _LayerColor6("Layer Color 6", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface6("Layer Surface 6", 2D) = "" {}
+ _LayerSampleParameters6("Layer Sample Parameters 6", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters6("Layer Mask Parameters 6", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis6("Layer Mask Axis 6", Vector) = (0, 1, 0, 0)
+
+ // Layer 7 parameters
+ _LayerSampleMode7("Layer Sample Mode 7", Int) = 0
+ _LayerBlendMode7("Layer Blend Mode 7", Int) = 0
+ _LayerMaskType7("Layer Mask Type 7", Int) = 0
+ _LayerColor7("Layer Color 7", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface7("Layer Surface 7", 2D) = "" {}
+ _LayerSampleParameters7("Layer Sample Parameters 7", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters7("Layer Mask Parameters 7", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis7("Layer Mask Axis 7", Vector) = (0, 1, 0, 0)
+ }
+
+ SubShader
+ {
+ Tags
+ {
+ "Queue" = "Transparent"
+ "RenderType" = "Transparent"
+ }
+
+ Blend SrcAlpha OneMinusSrcAlpha
+ ZWrite Off
+ LOD 200
+
+ Pass
+ {
+ Name "FORWARD"
+ Tags
+ {
+ "LightMode" = "ForwardBase"
+ }
+
+ CGPROGRAM
+ #pragma only_renderers d3d11 gles3 gles
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma target 3.0
+ #pragma multi_compile PROJECTOR_OFF PROJECTOR_ON
+ #pragma multi_compile NORMAL_MAP_OFF NORMAL_MAP_ON
+ #pragma multi_compile PARALLAX_OFF PARALLAX_ON
+ #pragma multi_compile ROUGHNESS_OFF ROUGHNESS_ON
+ #pragma multi_compile VERTALPHA_OFF VERTALPHA_ON
+ #pragma multi_compile LAYERS_1 LAYERS_2 LAYERS_3 LAYERS_4 LAYERS_5 LAYERS_6 LAYERS_7 LAYERS_8
+
+ #include "Assets/Oculus/Avatar/Content/Materials/AvatarMaterialStateShader.cginc"
+
+ float4 frag(VertexOutput IN) : COLOR
+ {
+ return ComputeSurface(IN);
+ }
+
+ ENDCG
+ }
+ }
+
+ FallBack "Diffuse"
+ CustomEditor "AvatarMaterialEditor"
+}
diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShader.shader.meta b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShader.shader.meta
new file mode 100644
index 0000000..f0911d7
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShader.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: d0f6e1942d3d1f946a96fd8a00175474
+timeCreated: 1470862124
+licenseType: Store
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBS.shader b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBS.shader
new file mode 100644
index 0000000..b0bab0e
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBS.shader
@@ -0,0 +1,79 @@
+// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
+
+Shader "OvrAvatar/AvatarSurfaceShaderPBS" {
+ Properties{
+ // Global parameters
+ _Alpha("Alpha", Range(0.0, 1.0)) = 1.0
+ _Albedo("Albedo (RGB)", 2D) = "" {}
+ _Surface("Metallic (R) Occlusion (G) and Smoothness (A)", 2D) = "" {}
+ }
+ SubShader{
+ Tags {
+ "Queue" = "Transparent"
+ "RenderType" = "Transparent"
+ }
+
+ Pass {
+ ZWrite On
+ Cull Off
+ ColorMask 0
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma target 3.0
+ #include "UnityCG.cginc"
+
+ struct v2f {
+ float4 position : SV_POSITION;
+ };
+ v2f vert(appdata_full v) {
+ // Output
+ v2f output;
+ output.position = UnityObjectToClipPos(v.vertex);
+ return output;
+ }
+
+ float4 frag(v2f input) : COLOR {
+ return 0;
+ }
+ ENDCG
+ }
+
+ LOD 200
+
+ CGPROGRAM
+
+// Physically based Standard lighting model, and enable shadows on all light types
+#pragma surface surf Standard vertex:vert nolightmap alpha noforwardadd
+
+float _Alpha;
+sampler2D _Albedo;
+float4 _Albedo_ST;
+sampler2D _Surface;
+float4 _Surface_ST;
+
+struct Input {
+ float2 texcoord;
+};
+
+void vert(inout appdata_full v, out Input o) {
+ UNITY_INITIALIZE_OUTPUT(Input, o);
+ o.texcoord = v.texcoord.xy;
+}
+
+void surf (Input IN, inout SurfaceOutputStandard o) {
+ o.Albedo = tex2D(_Albedo, TRANSFORM_TEX(IN.texcoord, _Albedo)).rgb;
+ float4 surfaceParams = tex2D(_Surface, TRANSFORM_TEX(IN.texcoord, _Surface));
+ o.Metallic = surfaceParams.r;
+ o.Occlusion = surfaceParams.g;
+ o.Smoothness = surfaceParams.a;
+ o.Alpha = _Alpha;
+}
+
+#pragma only_renderers d3d11 gles3 gles
+
+ENDCG
+ }
+ FallBack "Diffuse"
+}
diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBS.shader.meta b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBS.shader.meta
new file mode 100644
index 0000000..4625073
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBS.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: d7662dbac0646464a9b4a48e93989adb
+timeCreated: 1470862124
+licenseType: Store
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBSV2.shader b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBSV2.shader
new file mode 100644
index 0000000..cf67a20
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBSV2.shader
@@ -0,0 +1,39 @@
+Shader "OvrAvatar/AvatarSurfaceShaderPBSV2" {
+ Properties {
+ _AlbedoMultiplier ("Albedo Multiplier", Color) = (1,1,1,1)
+ _Albedo ("Albedo (RGB)", 2D) = "white" {}
+ _Metallicness("Metallicness", 2D) = "grey" {}
+ _GlossinessScale ("Glossiness Scale", Range(0,1)) = 0.5
+ }
+ SubShader {
+ Tags { "RenderType"="Opaque" }
+ LOD 200
+
+ CGPROGRAM
+ // Physically based Standard lighting model, and enable shadows on all light types
+ #pragma surface surf Standard fullforwardshadows
+
+ // Use shader model 3.0 target, to get nicer looking lighting
+ #pragma target 3.0
+
+ sampler2D _Albedo;
+ sampler2D _Metallicness;
+
+ struct Input {
+ float2 uv_Albedo;
+ };
+
+ float _GlossinessScale;
+ float4 _AlbedoMultiplier;
+
+ void surf (Input IN, inout SurfaceOutputStandard o) {
+ fixed4 c = tex2D (_Albedo, IN.uv_Albedo) * _AlbedoMultiplier;
+ o.Albedo = c.rgb;
+ o.Metallic = tex2D (_Metallicness, IN.uv_Albedo).r;
+ o.Smoothness = _GlossinessScale;
+ o.Alpha = 1.0;
+ }
+ ENDCG
+ }
+ FallBack "Diffuse"
+}
\ No newline at end of file
diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBSV2.shader.meta b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBSV2.shader.meta
new file mode 100644
index 0000000..414e4a6
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBSV2.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 3934b2d879c6eb94eb26fa19814c7fcd
+timeCreated: 1512064795
+licenseType: Store
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderSelfOccluding.shader b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderSelfOccluding.shader
new file mode 100644
index 0000000..76ce51e
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderSelfOccluding.shader
@@ -0,0 +1,175 @@
+Shader "OvrAvatar/AvatarSurfaceShaderSelfOccluding" {
+ Properties{
+ // Global parameters
+ _Alpha("Alpha", Range(0.0, 1.0)) = 1.0
+ _DarkMultiplier("Dark Multiplier", Color) = (0.6, 0.6, 0.6, 1.0)
+ _BaseColor("Base Color", Color) = (0.0, 0.0, 0.0, 0.0)
+ _BaseMaskType("Base Mask Type", Int) = 0
+ _BaseMaskParameters("Base Mask Parameters", Vector) = (0, 0, 0, 0)
+ _BaseMaskAxis("Base Mask Axis", Vector) = (0, 1, 0, 0)
+ _AlphaMask("Alpha Mask", 2D) = "white" {}
+ _NormalMap("Normal Map", 2D) = "" {}
+ _ParallaxMap("Parallax Map", 2D) = "" {}
+ _RoughnessMap("Roughness Map", 2D) = "" {}
+
+ // Layer 0 parameters
+ _LayerSampleMode0("Layer Sample Mode 0", Int) = 0
+ _LayerBlendMode0("Layer Blend Mode 0", Int) = 0
+ _LayerMaskType0("Layer Mask Type 0", Int) = 0
+ _LayerColor0("Layer Color 0", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface0("Layer Surface 0", 2D) = "" {}
+ _LayerSampleParameters0("Layer Sample Parameters 0", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters0("Layer Mask Parameters 0", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis0("Layer Mask Axis 0", Vector) = (0, 1, 0, 0)
+
+ // Layer 1 parameters
+ _LayerSampleMode1("Layer Sample Mode 1", Int) = 0
+ _LayerBlendMode1("Layer Blend Mode 1", Int) = 0
+ _LayerMaskType1("Layer Mask Type 1", Int) = 0
+ _LayerColor1("Layer Color 1", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface1("Layer Surface 1", 2D) = "" {}
+ _LayerSampleParameters1("Layer Sample Parameters 1", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters1("Layer Mask Parameters 1", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis1("Layer Mask Axis 1", Vector) = (0, 1, 0, 0)
+
+ // Layer 2 parameters
+ _LayerSampleMode2("Layer Sample Mode 2", Int) = 0
+ _LayerBlendMode2("Layer Blend Mode 2", Int) = 0
+ _LayerMaskType2("Layer Mask Type 2", Int) = 0
+ _LayerColor2("Layer Color 2", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface2("Layer Surface 2", 2D) = "" {}
+ _LayerSampleParameters2("Layer Sample Parameters 2", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters2("Layer Mask Parameters 2", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis2("Layer Mask Axis 2", Vector) = (0, 1, 0, 0)
+
+ // Layer 3 parameters
+ _LayerSampleMode3("Layer Sample Mode 3", Int) = 0
+ _LayerBlendMode3("Layer Blend Mode 3", Int) = 0
+ _LayerMaskType3("Layer Mask Type 3", Int) = 0
+ _LayerColor3("Layer Color 3", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface3("Layer Surface 3", 2D) = "" {}
+ _LayerSampleParameters3("Layer Sample Parameters 3", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters3("Layer Mask Parameters 3", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis3("Layer Mask Axis 3", Vector) = (0, 1, 0, 0)
+
+ // Layer 4 parameters
+ _LayerSampleMode4("Layer Sample Mode 4", Int) = 0
+ _LayerBlendMode4("Layer Blend Mode 4", Int) = 0
+ _LayerMaskType4("Layer Mask Type 4", Int) = 0
+ _LayerColor4("Layer Color 4", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface4("Layer Surface 4", 2D) = "" {}
+ _LayerSampleParameters4("Layer Sample Parameters 4", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters4("Layer Mask Parameters 4", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis4("Layer Mask Axis 4", Vector) = (0, 1, 0, 0)
+
+ // Layer 5 parameters
+ _LayerSampleMode5("Layer Sample Mode 5", Int) = 0
+ _LayerBlendMode5("Layer Blend Mode 5", Int) = 0
+ _LayerMaskType5("Layer Mask Type 5", Int) = 0
+ _LayerColor5("Layer Color 5", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface5("Layer Surface 5", 2D) = "" {}
+ _LayerSampleParameters5("Layer Sample Parameters 5", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters5("Layer Mask Parameters 5", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis5("Layer Mask Axis 5", Vector) = (0, 1, 0, 0)
+
+ // Layer 6 parameters
+ _LayerSampleMode6("Layer Sample Mode 6", Int) = 0
+ _LayerBlendMode6("Layer Blend Mode 6", Int) = 0
+ _LayerMaskType6("Layer Mask Type 6", Int) = 0
+ _LayerColor6("Layer Color 6", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface6("Layer Surface 6", 2D) = "" {}
+ _LayerSampleParameters6("Layer Sample Parameters 6", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters6("Layer Mask Parameters 6", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis6("Layer Mask Axis 6", Vector) = (0, 1, 0, 0)
+
+ // Layer 7 parameters
+ _LayerSampleMode7("Layer Sample Mode 7", Int) = 0
+ _LayerBlendMode7("Layer Blend Mode 7", Int) = 0
+ _LayerMaskType7("Layer Mask Type 7", Int) = 0
+ _LayerColor7("Layer Color 7", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface7("Layer Surface 7", 2D) = "" {}
+ _LayerSampleParameters7("Layer Sample Parameters 7", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters7("Layer Mask Parameters 7", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis7("Layer Mask Axis 7", Vector) = (0, 1, 0, 0)
+ }
+
+ SubShader
+ {
+ Tags
+ {
+ "Queue" = "Transparent"
+ "RenderType" = "Transparent"
+ }
+
+ Pass
+ {
+ ZWrite On
+ Cull Off
+ ColorMask 0
+ Offset 1, 1
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma target 3.0
+ #include "UnityCG.cginc"
+
+ struct v2f
+ {
+ float4 position : SV_POSITION;
+ };
+
+ v2f vert(appdata_full v)
+ {
+ // Output
+ v2f output;
+ output.position = UnityObjectToClipPos(v.vertex);
+ return output;
+ }
+
+ float4 frag(v2f input) : COLOR
+ {
+ return 0;
+ }
+
+ ENDCG
+ }
+
+ Blend SrcAlpha OneMinusSrcAlpha
+ ZWrite Off
+ LOD 200
+
+ Pass
+ {
+ Name "FORWARD"
+ Tags
+ {
+ "LightMode" = "ForwardBase"
+ }
+
+ CGPROGRAM
+ #pragma only_renderers d3d11 gles3 gles
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma target 3.0
+ #pragma multi_compile PROJECTOR_OFF PROJECTOR_ON
+ #pragma multi_compile NORMAL_MAP_OFF NORMAL_MAP_ON
+ #pragma multi_compile PARALLAX_OFF PARALLAX_ON
+ #pragma multi_compile ROUGHNESS_OFF ROUGHNESS_ON
+ #pragma multi_compile VERTALPHA_OFF VERTALPHA_ON
+ #pragma multi_compile LAYERS_1 LAYERS_2 LAYERS_3 LAYERS_4 LAYERS_5 LAYERS_6 LAYERS_7 LAYERS_8
+
+ #include "Assets/Oculus/Avatar/Content/Materials/AvatarMaterialStateShader.cginc"
+
+ float4 frag(VertexOutput IN) : SV_Target
+ {
+ return ComputeSurface(IN);
+ }
+
+ ENDCG
+ }
+ }
+
+ FallBack "Diffuse"
+ CustomEditor "AvatarMaterialEditor"
+}
diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderSelfOccluding.shader.meta b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderSelfOccluding.shader.meta
new file mode 100644
index 0000000..1a00873
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderSelfOccluding.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 10513ef587704324487f3061a7e6699d
+timeCreated: 1470862124
+licenseType: Store
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Content/Prefabs.meta b/Assets/Oculus/Avatar/Content/Prefabs.meta
new file mode 100644
index 0000000..a1f059c
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Prefabs.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: e2c4ef7503877e647b22a4089384f04f
+folderAsset: yes
+timeCreated: 1466717433
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Content/Prefabs/LocalAvatar.prefab b/Assets/Oculus/Avatar/Content/Prefabs/LocalAvatar.prefab
new file mode 100644
index 0000000..ea2dd46
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Prefabs/LocalAvatar.prefab
@@ -0,0 +1,793 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &157742
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 448722}
+ - component: {fileID: 11477770}
+ m_Layer: 0
+ m_Name: controller_right
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &158226
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 463470}
+ - component: {fileID: 11437430}
+ - component: {fileID: 8254050}
+ - component: {fileID: 11441414}
+ m_Layer: 0
+ m_Name: LocalAvatar
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &184120
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 400938}
+ - component: {fileID: 11405130}
+ m_Layer: 0
+ m_Name: controller_left
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &400938
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 184120}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 463470}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &448722
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 157742}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 463470}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &463470
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 158226}
+ 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: 4000010416372058}
+ - {fileID: 4000014100970646}
+ - {fileID: 4000013364346644}
+ - {fileID: 400938}
+ - {fileID: 4000011212216358}
+ - {fileID: 448722}
+ - {fileID: 4581494204247758}
+ - {fileID: 4468369968689664}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!82 &8254050
+AudioSource:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 158226}
+ m_Enabled: 1
+ serializedVersion: 4
+ OutputAudioMixerGroup: {fileID: 0}
+ m_audioClip: {fileID: 0}
+ m_PlayOnAwake: 1
+ m_Volume: 1
+ m_Pitch: 1
+ Loop: 0
+ Mute: 0
+ Spatialize: 0
+ SpatializePostEffects: 0
+ Priority: 128
+ DopplerLevel: 1
+ MinDistance: 1
+ MaxDistance: 500
+ Pan2D: 0
+ rolloffMode: 0
+ BypassEffects: 0
+ BypassListenerEffects: 0
+ BypassReverbZones: 0
+ rolloffCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ - serializedVersion: 2
+ time: 1
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ panLevelCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ spreadCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ reverbZoneMixCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+--- !u!114 &11405130
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 184120}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 77e19ec58d4a9e844970103e5bd8946a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &11437430
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 158226}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 00f3402a2ea5bff4880c0313515240cd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ DefaultBodyMaterialManager: {fileID: 114949324920430652}
+ DefaultHandMaterialManager: {fileID: 114029231360713414}
+ Driver: {fileID: 11441414}
+ Base: {fileID: 114000010884708534}
+ Body: {fileID: 114000012186362028}
+ ControllerLeft: {fileID: 11405130}
+ ControllerRight: {fileID: 11477770}
+ HandLeft: {fileID: 114000011404857786}
+ HandRight: {fileID: 114000010372160784}
+ RecordPackets: 0
+ UseSDKPackets: 1
+ StartWithControllers: 0
+ FirstPersonLayer:
+ layerIndex: 0
+ ThirdPersonLayer:
+ layerIndex: 0
+ ShowFirstPerson: 1
+ ShowThirdPerson: 0
+ Capabilities: -1
+ SurfaceShader: {fileID: 4800000, guid: 73f67c4e7bf718b4385aa6b1f8a06591, type: 3}
+ SurfaceShaderSelfOccluding: {fileID: 4800000, guid: 69f342b79d37541489919a19cfd8a924,
+ type: 3}
+ SurfaceShaderPBS: {fileID: 4800000, guid: 5e52aa58207bbf24d8eb8ec969e9ae88, type: 3}
+ SurfaceShaderPBSV2Single: {fileID: 4800000, guid: c26fc51e445dcfd4db09305d861dc11c,
+ type: 3}
+ SurfaceShaderPBSV2Combined: {fileID: 4800000, guid: 37d2b8298f61cd2469465fc36108675d,
+ type: 3}
+ SurfaceShaderPBSV2Simple: {fileID: 4800000, guid: 36b8b481cf607814a8cec318f0148d63,
+ type: 3}
+ SurfaceShaderPBSV2Loading: {fileID: 4800000, guid: 822f5e641dc5dd54ca9555b727b3277f,
+ type: 3}
+ oculusUserID: 0
+ LeftHandCustomPose: {fileID: 0}
+ RightHandCustomPose: {fileID: 0}
+ PacketSettings:
+ UpdateRate: 0.033333335
+ VoiceAmplitude: 0
+ EnableMouthVertexAnimation: 0
+--- !u!114 &11441414
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 158226}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: ac27124318cf8e84aa7350c2ac1cdb80, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Mode: 0
+--- !u!114 &11477770
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 157742}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 77e19ec58d4a9e844970103e5bd8946a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 158226}
+ m_IsPrefabParent: 1
+--- !u!1 &1000010482306814
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000011212216358}
+ - component: {fileID: 114000010372160784}
+ m_Layer: 0
+ m_Name: hand_right
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000010910743596
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000010416372058}
+ - component: {fileID: 114000010884708534}
+ m_Layer: 0
+ m_Name: base
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000011125779090
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000013364346644}
+ - component: {fileID: 114000011404857786}
+ m_Layer: 0
+ m_Name: hand_left
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000012026592076
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000014100970646}
+ - component: {fileID: 114000012186362028}
+ m_Layer: 0
+ m_Name: body
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1098047352992398
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4581494204247758}
+ - component: {fileID: 114949324920430652}
+ m_Layer: 0
+ m_Name: DefaultBodyMaterialManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1231602751420816
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4468369968689664}
+ - component: {fileID: 114029231360713414}
+ m_Layer: 0
+ m_Name: DefaultHandMaterialManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4000010416372058
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010910743596}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 463470}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000011212216358
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010482306814}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 463470}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000013364346644
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000011125779090}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 463470}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000014100970646
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012026592076}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 1.6, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 463470}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4468369968689664
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1231602751420816}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 463470}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4581494204247758
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1098047352992398}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 463470}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &114000010372160784
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010482306814}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e53b07ad62d980a4da9fffff0b05fd2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &114000010884708534
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010910743596}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a0e33623ec5372748b5703f61a4df82d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &114000011404857786
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000011125779090}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e53b07ad62d980a4da9fffff0b05fd2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &114000012186362028
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012026592076}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: eb7a6650b6cb46545967d3b380b7396c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &114029231360713414
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1231602751420816}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a139d83bf6796734db220df8a5bfacbd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ DiffuseFallbacks:
+ - {fileID: 2800000, guid: 7d8da3d06466cc04da8c020819170a59, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: b3e87b1024f5fa8408d004b398e7b0c0, type: 3}
+ NormalFallbacks:
+ - {fileID: 2800000, guid: 93a54b3b63bcc6d49b16f6bdb655b940, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 22a046c12fc7f3c4d98a98add109fa96, type: 3}
+ BodyColorTints:
+ - {r: 0.9764706, g: 0.8509804, b: 0.6862745, a: 1}
+ - {r: 1, g: 0.9529412, b: 0.92156863, a: 1}
+ - {r: 0.9764706, g: 0.9019608, b: 0.6745098, a: 1}
+ - {r: 0.7647059, g: 0.6039216, b: 0.2509804, a: 1}
+ - {r: 0.45490196, g: 0.1882353, b: 0, a: 1}
+ - {r: 0.22352941, g: 0.023529412, b: 0.011764706, a: 1}
+ LocalAvatarConfig:
+ ComponentMaterialProperties: []
+ MaterialPropertyBlock:
+ Colors: []
+ DiffuseIntensities: []
+ RimIntensities: []
+ BacklightIntensities: []
+ ReflectionIntensities: []
+ DefaultAvatarConfig:
+ ComponentMaterialProperties:
+ - TypeIndex: 0
+ Color: {r: 1, g: 0.9529412, b: 0.92156863, a: 1}
+ Textures: []
+ DiffuseIntensity: 0.301
+ RimIntensity: 5
+ BacklightIntensity: 1
+ ReflectionIntensity: 0
+ - TypeIndex: 1
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures: []
+ DiffuseIntensity: 0.1
+ RimIntensity: 2
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.3
+ - TypeIndex: 2
+ Color: {r: 0.80784315, g: 0.80784315, b: 0.80784315, a: 1}
+ Textures: []
+ DiffuseIntensity: 0
+ RimIntensity: 2.84
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.4
+ - TypeIndex: 3
+ Color: {r: 0.22352941, g: 0.11372549, b: 0, a: 1}
+ Textures: []
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ - TypeIndex: 4
+ Color: {r: 0.22352941, g: 0.023529412, b: 0.011764706, a: 1}
+ Textures: []
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ MaterialPropertyBlock:
+ Colors:
+ - {x: 0, y: 0, z: 0, w: 0}
+ - {x: 0, y: 0, z: 0, w: 0}
+ - {x: 0, y: 0, z: 0, w: 0}
+ - {x: 0, y: 0, z: 0, w: 0}
+ - {x: 0, y: 0, z: 0, w: 0}
+ DiffuseIntensities:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ RimIntensities:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ BacklightIntensities:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ ReflectionIntensities:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+--- !u!114 &114949324920430652
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1098047352992398}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a139d83bf6796734db220df8a5bfacbd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ DiffuseFallbacks:
+ - {fileID: 2800000, guid: 7d8da3d06466cc04da8c020819170a59, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: b3e87b1024f5fa8408d004b398e7b0c0, type: 3}
+ NormalFallbacks:
+ - {fileID: 2800000, guid: 93a54b3b63bcc6d49b16f6bdb655b940, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 22a046c12fc7f3c4d98a98add109fa96, type: 3}
+ BodyColorTints:
+ - {r: 0.9764706, g: 0.8509804, b: 0.6862745, a: 1}
+ - {r: 1, g: 0.9529412, b: 0.92156863, a: 1}
+ - {r: 0.9764706, g: 0.9019608, b: 0.6745098, a: 1}
+ - {r: 0.7647059, g: 0.6039216, b: 0.2509804, a: 1}
+ - {r: 0.45490196, g: 0.1882353, b: 0, a: 1}
+ - {r: 0.22352941, g: 0.023529412, b: 0.011764706, a: 1}
+ LocalAvatarConfig:
+ ComponentMaterialProperties:
+ - TypeIndex: 0
+ Color: {r: 1, g: 0.86, b: 0.77, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.3
+ RimIntensity: 5
+ BacklightIntensity: 1
+ ReflectionIntensity: 0
+ - TypeIndex: 1
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.1
+ RimIntensity: 2
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.3
+ - TypeIndex: 2
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0
+ RimIntensity: 2.84
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.4
+ - TypeIndex: 3
+ Color: {r: 0.6235, g: 0.4627, b: 0.3412, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ - TypeIndex: 4
+ Color: {r: -5.3487954e+9, g: 771.1758, b: -5.6686517e+23, a: 4.9667446e-34}
+ Textures:
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ MaterialPropertyBlock:
+ Colors:
+ - {x: 1, y: 0.86, z: 0.77, w: 1}
+ - {x: 1, y: 1, z: 1, w: 1}
+ - {x: 1, y: 1, z: 1, w: 1}
+ - {x: 0.6235, y: 0.4627, z: 0.3412, w: 1}
+ - {x: -0.025753247, y: -2.0311036e-13, z: -6.2685677e-31, w: -2.0021067e+22}
+ DiffuseIntensities:
+ - 0.3
+ - 0.1
+ - 0
+ - 0.15
+ - 0.15
+ RimIntensities:
+ - 5
+ - 2
+ - 2.84
+ - 4
+ - 4
+ BacklightIntensities:
+ - 1
+ - 0.7
+ - 0.7
+ - 0.7
+ - 0.7
+ ReflectionIntensities:
+ - 0
+ - 0.3
+ - 0.4
+ - 0
+ - 0
+ DefaultAvatarConfig:
+ ComponentMaterialProperties:
+ - TypeIndex: 0
+ Color: {r: 1, g: 0.86, b: 0.77, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.3
+ RimIntensity: 5
+ BacklightIntensity: 1
+ ReflectionIntensity: 0
+ - TypeIndex: 1
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.1
+ RimIntensity: 2
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.3
+ - TypeIndex: 2
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0
+ RimIntensity: 2.84
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.4
+ - TypeIndex: 3
+ Color: {r: 0.6235, g: 0.4627, b: 0.3412, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ - TypeIndex: 4
+ Color: {r: -5.3487954e+9, g: 771.1758, b: -5.6686517e+23, a: 4.9667446e-34}
+ Textures:
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ MaterialPropertyBlock:
+ Colors:
+ - {x: 1, y: 0.86, z: 0.77, w: 1}
+ - {x: 1, y: 1, z: 1, w: 1}
+ - {x: 1, y: 1, z: 1, w: 1}
+ - {x: 0.6235, y: 0.4627, z: 0.3412, w: 1}
+ - {x: -0.025753247, y: -2.0311036e-13, z: -6.2685677e-31, w: -2.0021067e+22}
+ DiffuseIntensities:
+ - 0.3
+ - 0.1
+ - 0
+ - 0.15
+ - 0.15
+ RimIntensities:
+ - 5
+ - 2
+ - 2.84
+ - 4
+ - 4
+ BacklightIntensities:
+ - 1
+ - 0.7
+ - 0.7
+ - 0.7
+ - 0.7
+ ReflectionIntensities:
+ - 0
+ - 0.3
+ - 0.4
+ - 0
+ - 0
diff --git a/Assets/Oculus/Avatar/Content/Prefabs/LocalAvatar.prefab.meta b/Assets/Oculus/Avatar/Content/Prefabs/LocalAvatar.prefab.meta
new file mode 100644
index 0000000..4844c05
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Prefabs/LocalAvatar.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 84c8b8609f9bb434eaf5248f17ff1293
+timeCreated: 1466806466
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Content/Prefabs/RemoteAvatar.prefab b/Assets/Oculus/Avatar/Content/Prefabs/RemoteAvatar.prefab
new file mode 100644
index 0000000..575f84c
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Prefabs/RemoteAvatar.prefab
@@ -0,0 +1,2830 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &143252
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 496618}
+ - component: {fileID: 11464902}
+ - component: {fileID: 11461908}
+ m_Layer: 0
+ m_Name: RemoteAvatar
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &154294
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 489662}
+ - component: {fileID: 114000010091674760}
+ m_Layer: 0
+ m_Name: hand_left
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &165584
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 429728}
+ - component: {fileID: 114000012345544872}
+ m_Layer: 0
+ m_Name: body
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &166844
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 435882}
+ - component: {fileID: 11465430}
+ m_Layer: 0
+ m_Name: controller_right
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &178596
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 433868}
+ - component: {fileID: 11470276}
+ m_Layer: 0
+ m_Name: controller_left
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &188284
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 407044}
+ - component: {fileID: 114000012207304612}
+ m_Layer: 0
+ m_Name: hand_right
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &407044
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 188284}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 496618}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &429728
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 165584}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 1.6, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 496618}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &433868
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 178596}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4000012540091686}
+ m_Father: {fileID: 496618}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &435882
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 166844}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4000011967535116}
+ m_Father: {fileID: 496618}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &489662
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 154294}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 496618}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &496618
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 143252}
+ 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: 4000011021225538}
+ - {fileID: 429728}
+ - {fileID: 489662}
+ - {fileID: 407044}
+ - {fileID: 433868}
+ - {fileID: 435882}
+ - {fileID: 4461464600332690}
+ - {fileID: 4823973753068400}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &11461908
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 143252}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c198a42a3843ca04fa633b60f428ff51, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Mode: 0
+--- !u!114 &11464902
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 143252}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 00f3402a2ea5bff4880c0313515240cd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ DefaultBodyMaterialManager: {fileID: 114533516196804206}
+ DefaultHandMaterialManager: {fileID: 114144217084364882}
+ Driver: {fileID: 11461908}
+ Base: {fileID: 114000010148578704}
+ Body: {fileID: 114000012345544872}
+ ControllerLeft: {fileID: 11470276}
+ ControllerRight: {fileID: 11465430}
+ HandLeft: {fileID: 114000010091674760}
+ HandRight: {fileID: 114000012207304612}
+ RecordPackets: 0
+ UseSDKPackets: 1
+ StartWithControllers: 0
+ FirstPersonLayer:
+ layerIndex: 0
+ ThirdPersonLayer:
+ layerIndex: 0
+ ShowFirstPerson: 0
+ ShowThirdPerson: 1
+ Capabilities: -1
+ SurfaceShader: {fileID: 4800000, guid: 73f67c4e7bf718b4385aa6b1f8a06591, type: 3}
+ SurfaceShaderSelfOccluding: {fileID: 4800000, guid: 69f342b79d37541489919a19cfd8a924,
+ type: 3}
+ SurfaceShaderPBS: {fileID: 4800000, guid: 5e52aa58207bbf24d8eb8ec969e9ae88, type: 3}
+ SurfaceShaderPBSV2Single: {fileID: 4800000, guid: c26fc51e445dcfd4db09305d861dc11c,
+ type: 3}
+ SurfaceShaderPBSV2Combined: {fileID: 4800000, guid: 37d2b8298f61cd2469465fc36108675d,
+ type: 3}
+ SurfaceShaderPBSV2Simple: {fileID: 4800000, guid: 36b8b481cf607814a8cec318f0148d63,
+ type: 3}
+ SurfaceShaderPBSV2Loading: {fileID: 4800000, guid: 822f5e641dc5dd54ca9555b727b3277f,
+ type: 3}
+ oculusUserID: 0
+ LeftHandCustomPose: {fileID: 0}
+ RightHandCustomPose: {fileID: 0}
+ PacketSettings:
+ UpdateRate: 0.033333335
+ VoiceAmplitude: 0
+ EnableMouthVertexAnimation: 0
+--- !u!114 &11465430
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 166844}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 77e19ec58d4a9e844970103e5bd8946a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &11470276
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 178596}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 77e19ec58d4a9e844970103e5bd8946a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 143252}
+ m_IsPrefabParent: 1
+--- !u!1 &1000010176019332
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000013053309248}
+ - component: {fileID: 137000012539278394}
+ m_Layer: 0
+ m_Name: rctrl:a_button_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000010186355062
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000013448249666}
+ m_Layer: 0
+ m_Name: rctrl:b_hold
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000010353348604
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000011939430368}
+ - component: {fileID: 137000012561251176}
+ m_Layer: 0
+ m_Name: lctrl:ring_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000010404229384
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000011568184020}
+ - component: {fileID: 137000012327971406}
+ m_Layer: 0
+ m_Name: lctrl:surface_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000010462727460
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000010715895894}
+ m_Layer: 0
+ m_Name: rctrl:right_touch_controller_world
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000010540851970
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000012605354570}
+ - component: {fileID: 137000012577831356}
+ m_Layer: 0
+ m_Name: rctrl:b_button_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000010567967398
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000012724529694}
+ m_Layer: 0
+ m_Name: rctrl:b_trigger
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000010618960340
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000012540091686}
+ - component: {fileID: 95000014191315040}
+ m_Layer: 0
+ m_Name: left_touch_controller_model_skel
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000010732039748
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000014027683858}
+ - component: {fileID: 137000014239696370}
+ m_Layer: 0
+ m_Name: rctrl:o_button_decal_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000010829465458
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000013426853722}
+ m_Layer: 0
+ m_Name: lctrl:geometry_null
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000011032731176
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000013724697446}
+ m_Layer: 0
+ m_Name: rctrl:b_stick
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000011186482016
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000011967535116}
+ - component: {fileID: 95000011808594792}
+ m_Layer: 0
+ m_Name: right_touch_controller_model_skel
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000011251501750
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000012705674684}
+ - component: {fileID: 137000013198274284}
+ m_Layer: 0
+ m_Name: rctrl:ring_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000011296493708
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000011540650158}
+ m_Layer: 0
+ m_Name: lctrl:b_trigger
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000011598347302
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000012705338176}
+ m_Layer: 0
+ m_Name: rctrl:b_stick_IGNORE
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000011605533530
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000010811930704}
+ m_Layer: 0
+ m_Name: lctrl:b_stick
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000011727251070
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000012384171158}
+ m_Layer: 0
+ m_Name: rctrl:b_button01
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000011772014684
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000011564629680}
+ - component: {fileID: 137000014119152936}
+ m_Layer: 0
+ m_Name: rctrl:o_button_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000011875671922
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000013166053970}
+ - component: {fileID: 137000010724210166}
+ m_Layer: 0
+ m_Name: rctrl:side_trigger_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000011963518446
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000012961726978}
+ - component: {fileID: 137000011963534174}
+ m_Layer: 0
+ m_Name: lctrl:thumbstick_ball_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000011996807892
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000013876876732}
+ m_Layer: 0
+ m_Name: rctrl:b_button02
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000012054331002
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000011636682892}
+ - component: {fileID: 137000013701477334}
+ m_Layer: 0
+ m_Name: rctrl:thumbstick_ball_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000012150430946
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000012272704210}
+ - component: {fileID: 137000012107674410}
+ m_Layer: 0
+ m_Name: lctrl:o_button_decal_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000012196631598
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000012842689428}
+ m_Layer: 0
+ m_Name: lctrl:left_touch_controller_world
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000012207203502
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000011814646714}
+ m_Layer: 0
+ m_Name: lctrl:b_stick_IGNORE
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000012459128118
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000010499556928}
+ - component: {fileID: 137000010692100556}
+ m_Layer: 0
+ m_Name: lctrl:x_button_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000012540503508
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000010768823692}
+ m_Layer: 0
+ m_Name: rctrl:b_button03
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000012561114658
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000011465109902}
+ - component: {fileID: 137000011798888872}
+ m_Layer: 0
+ m_Name: lctrl:o_button_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000012687583852
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000012029189976}
+ m_Layer: 0
+ m_Name: lctrl:b_button01
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000012703596256
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000010465752764}
+ - component: {fileID: 137000012369293346}
+ m_Layer: 0
+ m_Name: rctrl:controller_body_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000012739084852
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000011697994020}
+ - component: {fileID: 137000012017572084}
+ m_Layer: 0
+ m_Name: lctrl:main_trigger_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000012820484798
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000011581298260}
+ m_Layer: 0
+ m_Name: rctrl:geometry_null
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000012913350438
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000011021225538}
+ - component: {fileID: 114000010148578704}
+ m_Layer: 0
+ m_Name: base
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000013039583002
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000013285752372}
+ m_Layer: 0
+ m_Name: lctrl:b_button03
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000013068196432
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000012208151102}
+ - component: {fileID: 137000011002884086}
+ m_Layer: 0
+ m_Name: lctrl:controller_body_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000013237565076
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000012351109320}
+ - component: {fileID: 137000012071317434}
+ m_Layer: 0
+ m_Name: rctrl:surface_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000013362553720
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000011208292394}
+ - component: {fileID: 137000010318330296}
+ m_Layer: 0
+ m_Name: lctrl:side_trigger_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000013632609248
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000014115540756}
+ - component: {fileID: 137000010086889286}
+ m_Layer: 0
+ m_Name: rctrl:main_trigger_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000013724541018
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000011684154134}
+ m_Layer: 0
+ m_Name: lctrl:b_button02
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000013773920210
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000010076381212}
+ m_Layer: 0
+ m_Name: lctrl:b_hold
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1000013783390420
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4000011937531554}
+ - component: {fileID: 137000010625253534}
+ m_Layer: 0
+ m_Name: lctrl:y_button_PLY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1387099181202896
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4461464600332690}
+ - component: {fileID: 114533516196804206}
+ m_Layer: 0
+ m_Name: DefaultBodyMaterialManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1952448560374888
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4823973753068400}
+ - component: {fileID: 114144217084364882}
+ m_Layer: 0
+ m_Name: DefaultHandMaterialManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4000010076381212
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000013773920210}
+ m_LocalRotation: {x: -0.18065539, y: -0.13555649, z: -0.067166515, w: 0.97184193}
+ m_LocalPosition: {x: 0.013074442, y: -0.025639696, z: -0.027427113}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000012842689428}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000010465752764
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012703596256}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000011581298260}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000010499556928
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012459128118}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000013426853722}
+ m_RootOrder: 8
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000010715895894
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010462727460}
+ m_LocalRotation: {x: 0, y: 0.7071068, z: 0.7071068, w: -8.659561e-17}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4000012384171158}
+ - {fileID: 4000013876876732}
+ - {fileID: 4000010768823692}
+ - {fileID: 4000013448249666}
+ - {fileID: 4000013724697446}
+ - {fileID: 4000012724529694}
+ m_Father: {fileID: 4000011967535116}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000010768823692
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012540503508}
+ m_LocalRotation: {x: 0.07876507, y: 0.01894126, z: 0.5343878, w: 0.8413483}
+ m_LocalPosition: {x: -0.012083728, y: -0.01402681, z: -0.0007126567}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000010715895894}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000010811930704
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000011605533530}
+ m_LocalRotation: {x: 0.0027868259, y: 0.70437866, z: -0.0031505642, w: 0.7098119}
+ m_LocalPosition: {x: 0.010637393, y: 0.00497835, z: -0.009418557}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4000011814646714}
+ m_Father: {fileID: 4000012842689428}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000011021225538
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012913350438}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 496618}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000011208292394
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000013362553720}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000013426853722}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000011465109902
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012561114658}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000013426853722}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000011540650158
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000011296493708}
+ m_LocalRotation: {x: -0.05795374, y: -0.05660452, z: 0.9967023, w: 0.0046757394}
+ m_LocalPosition: {x: -0.001420367, y: 0.021865888, z: -0.005495974}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000012842689428}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000011564629680
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000011772014684}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000011581298260}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000011568184020
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010404229384}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000013426853722}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000011581298260
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012820484798}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4000013053309248}
+ - {fileID: 4000012605354570}
+ - {fileID: 4000010465752764}
+ - {fileID: 4000014115540756}
+ - {fileID: 4000014027683858}
+ - {fileID: 4000011564629680}
+ - {fileID: 4000012705674684}
+ - {fileID: 4000013166053970}
+ - {fileID: 4000012351109320}
+ - {fileID: 4000011636682892}
+ m_Father: {fileID: 4000011967535116}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000011636682892
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012054331002}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000011581298260}
+ m_RootOrder: 9
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000011684154134
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000013724541018}
+ m_LocalRotation: {x: 0.017080953, y: -0.07918932, z: 0.52647054, w: 0.84632504}
+ m_LocalPosition: {x: -0.0091353385, y: 0.005499125, z: -0.00011681918}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000012842689428}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000011697994020
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012739084852}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000013426853722}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000011814646714
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012207203502}
+ m_LocalRotation: {x: 0, y: -0.70108956, z: -0, w: 0.71307325}
+ m_LocalPosition: {x: -0.019321036, y: 0, z: 9.992007e-18}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000010811930704}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000011937531554
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000013783390420}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000013426853722}
+ m_RootOrder: 9
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000011939430368
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010353348604}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000013426853722}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000011967535116
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000011186482016}
+ 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: 4000011581298260}
+ - {fileID: 4000010715895894}
+ m_Father: {fileID: 435882}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000012029189976
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012687583852}
+ m_LocalRotation: {x: 0.05660452, y: -0.05795374, z: -0.0046757394, w: 0.9967023}
+ m_LocalPosition: {x: -0.0019170768, y: -0.0073837424, z: -0.00091214647}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000012842689428}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000012208151102
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000013068196432}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000013426853722}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000012272704210
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012150430946}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000013426853722}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000012351109320
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000013237565076}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000011581298260}
+ m_RootOrder: 8
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000012384171158
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000011727251070}
+ m_LocalRotation: {x: 0.056604527, y: 0.05795374, z: 0.004675739, w: 0.9967023}
+ m_LocalPosition: {x: 0.0019170768, y: -0.0073837424, z: -0.00091214647}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000010715895894}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000012540091686
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010618960340}
+ 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: 4000013426853722}
+ - {fileID: 4000012842689428}
+ m_Father: {fileID: 433868}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000012605354570
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010540851970}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000011581298260}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000012705338176
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000011598347302}
+ m_LocalRotation: {x: -4.5059287e-17, y: -0.70108956, z: -6.5911624e-17, w: 0.71307325}
+ m_LocalPosition: {x: -0.019321036, y: 0, z: 9.992007e-18}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000013724697446}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000012705674684
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000011251501750}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000011581298260}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000012724529694
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010567967398}
+ m_LocalRotation: {x: 0.056604527, y: 0.05795374, z: 0.004675739, w: 0.9967023}
+ m_LocalPosition: {x: 0.001420367, y: 0.021865888, z: -0.005495974}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000010715895894}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000012842689428
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012196631598}
+ m_LocalRotation: {x: 0, y: 0.7071068, z: 0.7071068, w: -8.659561e-17}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4000012029189976}
+ - {fileID: 4000011684154134}
+ - {fileID: 4000013285752372}
+ - {fileID: 4000010076381212}
+ - {fileID: 4000010811930704}
+ - {fileID: 4000011540650158}
+ m_Father: {fileID: 4000012540091686}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000012961726978
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000011963518446}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000013426853722}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000013053309248
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010176019332}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000011581298260}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000013166053970
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000011875671922}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000011581298260}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000013285752372
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000013039583002}
+ m_LocalRotation: {x: 0.05660452, y: -0.05795374, z: -0.0046757394, w: 0.9967023}
+ m_LocalPosition: {x: 0.012083728, y: -0.01402681, z: -0.0007126567}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000012842689428}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000013426853722
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010829465458}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4000012208151102}
+ - {fileID: 4000011697994020}
+ - {fileID: 4000012272704210}
+ - {fileID: 4000011465109902}
+ - {fileID: 4000011939430368}
+ - {fileID: 4000011208292394}
+ - {fileID: 4000011568184020}
+ - {fileID: 4000012961726978}
+ - {fileID: 4000010499556928}
+ - {fileID: 4000011937531554}
+ m_Father: {fileID: 4000012540091686}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000013448249666
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010186355062}
+ m_LocalRotation: {x: -0.17913595, y: 0.14914332, z: 0.022661837, w: 0.97218984}
+ m_LocalPosition: {x: -0.013074442, y: -0.025639696, z: -0.027427113}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000010715895894}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000013724697446
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000011032731176}
+ m_LocalRotation: {x: -0.003149668, y: 0.7098123, z: 0.002783398, w: 0.7043784}
+ m_LocalPosition: {x: -0.010637393, y: 0.00497835, z: -0.009418557}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4000012705338176}
+ m_Father: {fileID: 4000010715895894}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000013876876732
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000011996807892}
+ m_LocalRotation: {x: 0.07876507, y: 0.01894126, z: 0.5343878, w: 0.8413483}
+ m_LocalPosition: {x: 0.009152712, y: 0.0054823146, z: 0.000030916483}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000010715895894}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000014027683858
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010732039748}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000011581298260}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4000014115540756
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000013632609248}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4000011581298260}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4461464600332690
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1387099181202896}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 496618}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4823973753068400
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1952448560374888}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 496618}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!95 &95000011808594792
+Animator:
+ serializedVersion: 3
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000011186482016}
+ m_Enabled: 1
+ m_Avatar: {fileID: 9000000, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3}
+ m_Controller: {fileID: 0}
+ m_CullingMode: 1
+ m_UpdateMode: 0
+ m_ApplyRootMotion: 0
+ m_LinearVelocityBlending: 0
+ m_WarningMessage:
+ m_HasTransformHierarchy: 1
+ m_AllowConstantClipSamplingOptimization: 1
+--- !u!95 &95000014191315040
+Animator:
+ serializedVersion: 3
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010618960340}
+ m_Enabled: 1
+ m_Avatar: {fileID: 9000000, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3}
+ m_Controller: {fileID: 0}
+ m_CullingMode: 1
+ m_UpdateMode: 0
+ m_ApplyRootMotion: 0
+ m_LinearVelocityBlending: 0
+ m_WarningMessage:
+ m_HasTransformHierarchy: 1
+ m_AllowConstantClipSamplingOptimization: 1
+--- !u!114 &114000010091674760
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 154294}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e53b07ad62d980a4da9fffff0b05fd2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &114000010148578704
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012913350438}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a0e33623ec5372748b5703f61a4df82d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &114000012207304612
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 188284}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e53b07ad62d980a4da9fffff0b05fd2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &114000012345544872
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 165584}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: eb7a6650b6cb46545967d3b380b7396c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &114144217084364882
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1952448560374888}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a139d83bf6796734db220df8a5bfacbd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ DiffuseFallbacks:
+ - {fileID: 2800000, guid: 7d8da3d06466cc04da8c020819170a59, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: b3e87b1024f5fa8408d004b398e7b0c0, type: 3}
+ NormalFallbacks:
+ - {fileID: 2800000, guid: 93a54b3b63bcc6d49b16f6bdb655b940, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 22a046c12fc7f3c4d98a98add109fa96, type: 3}
+ BodyColorTints:
+ - {r: 0.9764706, g: 0.8509804, b: 0.6862745, a: 1}
+ - {r: 1, g: 0.9529412, b: 0.92156863, a: 1}
+ - {r: 0.9764706, g: 0.9019608, b: 0.6745098, a: 1}
+ - {r: 0.7647059, g: 0.6039216, b: 0.2509804, a: 1}
+ - {r: 0.45490196, g: 0.1882353, b: 0, a: 1}
+ - {r: 0.22352941, g: 0.023529412, b: 0.011764706, a: 1}
+ LocalAvatarConfig:
+ ComponentMaterialProperties: []
+ MaterialPropertyBlock:
+ Colors: []
+ DiffuseIntensities: []
+ RimIntensities: []
+ BacklightIntensities: []
+ ReflectionIntensities: []
+ DefaultAvatarConfig:
+ ComponentMaterialProperties:
+ - TypeIndex: 0
+ Color: {r: 1, g: 0.9529412, b: 0.92156863, a: 1}
+ Textures: []
+ DiffuseIntensity: 0.301
+ RimIntensity: 5
+ BacklightIntensity: 1
+ ReflectionIntensity: 0
+ - TypeIndex: 1
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures: []
+ DiffuseIntensity: 0.1
+ RimIntensity: 2
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.3
+ - TypeIndex: 2
+ Color: {r: 0.80784315, g: 0.80784315, b: 0.80784315, a: 1}
+ Textures: []
+ DiffuseIntensity: 0
+ RimIntensity: 2.84
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.4
+ - TypeIndex: 3
+ Color: {r: 0.22352941, g: 0.11372549, b: 0, a: 1}
+ Textures: []
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ - TypeIndex: 4
+ Color: {r: 0.22352941, g: 0.023529412, b: 0.011764706, a: 1}
+ Textures: []
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ MaterialPropertyBlock:
+ Colors:
+ - {x: 0, y: 0, z: 0, w: 0}
+ - {x: 0, y: 0, z: 0, w: 0}
+ - {x: 0, y: 0, z: 0, w: 0}
+ - {x: 0, y: 0, z: 0, w: 0}
+ - {x: 0, y: 0, z: 0, w: 0}
+ DiffuseIntensities:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ RimIntensities:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ BacklightIntensities:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ ReflectionIntensities:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+--- !u!114 &114533516196804206
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1387099181202896}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a139d83bf6796734db220df8a5bfacbd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ DiffuseFallbacks:
+ - {fileID: 2800000, guid: 7d8da3d06466cc04da8c020819170a59, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: b3e87b1024f5fa8408d004b398e7b0c0, type: 3}
+ NormalFallbacks:
+ - {fileID: 2800000, guid: 93a54b3b63bcc6d49b16f6bdb655b940, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 22a046c12fc7f3c4d98a98add109fa96, type: 3}
+ BodyColorTints:
+ - {r: 0.9764706, g: 0.8509804, b: 0.6862745, a: 1}
+ - {r: 1, g: 0.9529412, b: 0.92156863, a: 1}
+ - {r: 0.9764706, g: 0.9019608, b: 0.6745098, a: 1}
+ - {r: 0.7647059, g: 0.6039216, b: 0.2509804, a: 1}
+ - {r: 0.45490196, g: 0.1882353, b: 0, a: 1}
+ - {r: 0.22352941, g: 0.023529412, b: 0.011764706, a: 1}
+ LocalAvatarConfig:
+ ComponentMaterialProperties:
+ - TypeIndex: 0
+ Color: {r: 1, g: 0.86, b: 0.77, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.3
+ RimIntensity: 5
+ BacklightIntensity: 1
+ ReflectionIntensity: 0
+ - TypeIndex: 1
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.1
+ RimIntensity: 2
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.3
+ - TypeIndex: 2
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0
+ RimIntensity: 2.84
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.4
+ - TypeIndex: 3
+ Color: {r: 0.6235, g: 0.4627, b: 0.3412, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ - TypeIndex: 4
+ Color: {r: -5.3487954e+9, g: 771.1758, b: -5.6686517e+23, a: 4.9667446e-34}
+ Textures:
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ MaterialPropertyBlock:
+ Colors:
+ - {x: 1, y: 0.86, z: 0.77, w: 1}
+ - {x: 1, y: 1, z: 1, w: 1}
+ - {x: 1, y: 1, z: 1, w: 1}
+ - {x: 0.6235, y: 0.4627, z: 0.3412, w: 1}
+ - {x: -0.025753247, y: -2.0311036e-13, z: -6.2685677e-31, w: -2.0021067e+22}
+ DiffuseIntensities:
+ - 0.3
+ - 0.1
+ - 0
+ - 0.15
+ - 0.15
+ RimIntensities:
+ - 5
+ - 2
+ - 2.84
+ - 4
+ - 4
+ BacklightIntensities:
+ - 1
+ - 0.7
+ - 0.7
+ - 0.7
+ - 0.7
+ ReflectionIntensities:
+ - 0
+ - 0.3
+ - 0.4
+ - 0
+ - 0
+ DefaultAvatarConfig:
+ ComponentMaterialProperties:
+ - TypeIndex: 0
+ Color: {r: 1, g: 0.86, b: 0.77, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.3
+ RimIntensity: 5
+ BacklightIntensity: 1
+ ReflectionIntensity: 0
+ - TypeIndex: 1
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.1
+ RimIntensity: 2
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.3
+ - TypeIndex: 2
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0
+ RimIntensity: 2.84
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.4
+ - TypeIndex: 3
+ Color: {r: 0.6235, g: 0.4627, b: 0.3412, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ - TypeIndex: 4
+ Color: {r: -5.3487954e+9, g: 771.1758, b: -5.6686517e+23, a: 4.9667446e-34}
+ Textures:
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ MaterialPropertyBlock:
+ Colors:
+ - {x: 1, y: 0.86, z: 0.77, w: 1}
+ - {x: 1, y: 1, z: 1, w: 1}
+ - {x: 1, y: 1, z: 1, w: 1}
+ - {x: 0.6235, y: 0.4627, z: 0.3412, w: 1}
+ - {x: -0.025753247, y: -2.0311036e-13, z: -6.2685677e-31, w: -2.0021067e+22}
+ DiffuseIntensities:
+ - 0.3
+ - 0.1
+ - 0
+ - 0.15
+ - 0.15
+ RimIntensities:
+ - 5
+ - 2
+ - 2.84
+ - 4
+ - 4
+ BacklightIntensities:
+ - 1
+ - 0.7
+ - 0.7
+ - 0.7
+ - 0.7
+ ReflectionIntensities:
+ - 0
+ - 0.3
+ - 0.4
+ - 0
+ - 0
+--- !u!137 &137000010086889286
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000013632609248}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300000, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3}
+ m_Bones:
+ - {fileID: 4000012724529694}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000012724529694}
+ m_AABB:
+ m_Center: {x: -0.00066094473, y: -0.0013324618, z: -0.013972076}
+ m_Extent: {x: 0.014561898, y: 0.009363493, z: 0.013364943}
+ m_DirtyAABB: 0
+--- !u!137 &137000010318330296
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000013362553720}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300004, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3}
+ m_Bones:
+ - {fileID: 4000010076381212}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000010076381212}
+ m_AABB:
+ m_Center: {x: -0.015075567, y: -0.000016345643, z: 0.0018507377}
+ m_Extent: {x: 0.0069265487, y: 0.01454833, z: 0.0073075653}
+ m_DirtyAABB: 0
+--- !u!137 &137000010625253534
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000013783390420}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300014, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3}
+ m_Bones:
+ - {fileID: 4000011684154134}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000011684154134}
+ m_AABB:
+ m_Center: {x: 0.000002396293, y: -0.000002480112, z: 0.0004961204}
+ m_Extent: {x: 0.0050600627, y: 0.005023708, z: 0.0025072547}
+ m_DirtyAABB: 0
+--- !u!137 &137000010692100556
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012459128118}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300012, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3}
+ m_Bones:
+ - {fileID: 4000012029189976}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000012029189976}
+ m_AABB:
+ m_Center: {x: -0.0000007278286, y: 0.000013420358, z: 0.00049956236}
+ m_Extent: {x: 0.0050891, y: 0.0051111123, z: 0.0025754925}
+ m_DirtyAABB: 0
+--- !u!137 &137000010724210166
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000011875671922}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300002, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3}
+ m_Bones:
+ - {fileID: 4000013448249666}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000013448249666}
+ m_AABB:
+ m_Center: {x: 0.015085924, y: 0.00079575554, z: 0.0022845878}
+ m_Extent: {x: 0.007514255, y: 0.01456238, z: 0.0074783214}
+ m_DirtyAABB: 0
+--- !u!137 &137000011002884086
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000013068196432}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300000, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3}
+ m_Bones:
+ - {fileID: 4000012842689428}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000012842689428}
+ m_AABB:
+ m_Center: {x: 0.0012377053, y: -0.019060574, z: -0.031179674}
+ m_Extent: {x: 0.030484837, y: 0.051344864, z: 0.03589142}
+ m_DirtyAABB: 0
+--- !u!137 &137000011798888872
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012561114658}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300018, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3}
+ m_Bones:
+ - {fileID: 4000013285752372}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000013285752372}
+ m_AABB:
+ m_Center: {x: 0.00000036275014, y: 0.0000008731149, z: 0.00057195796}
+ m_Extent: {x: 0.004508081, y: 0.0045095203, z: 0.0007474726}
+ m_DirtyAABB: 0
+--- !u!137 &137000011963534174
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000011963518446}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300006, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3}
+ m_Bones:
+ - {fileID: 4000012842689428}
+ - {fileID: 4000010811930704}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000012842689428}
+ m_AABB:
+ m_Center: {x: 0.010604473, y: 0.0049807066, z: 0.0022465445}
+ m_Extent: {x: 0.01075476, y: 0.010751982, z: 0.007853846}
+ m_DirtyAABB: 0
+--- !u!137 &137000012017572084
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012739084852}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300002, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3}
+ m_Bones:
+ - {fileID: 4000011540650158}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000011540650158}
+ m_AABB:
+ m_Center: {x: -0.00066094473, y: 0.00133246, z: -0.01397207}
+ m_Extent: {x: 0.014561897, y: 0.009363488, z: 0.013364941}
+ m_DirtyAABB: 0
+--- !u!137 &137000012071317434
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000013237565076}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300008, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3}
+ m_Bones:
+ - {fileID: 4000010715895894}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000010715895894}
+ m_AABB:
+ m_Center: {x: -0.00016466528, y: 0.00024955347, z: -0.0010734652}
+ m_Extent: {x: 0.028195847, y: 0.028275441, z: 0.0059699165}
+ m_DirtyAABB: 0
+--- !u!137 &137000012107674410
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012150430946}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300016, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3}
+ m_Bones:
+ - {fileID: 4000013285752372}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000013285752372}
+ m_AABB:
+ m_Center: {x: 0.000017444137, y: -0.000100485515, z: 0.0012767066}
+ m_Extent: {x: 0.0021195891, y: 0.0016280017, z: 0.000015275204}
+ m_DirtyAABB: 0
+--- !u!137 &137000012327971406
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010404229384}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300010, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3}
+ m_Bones:
+ - {fileID: 4000012842689428}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000012842689428}
+ m_AABB:
+ m_Center: {x: 0.00016466528, y: 0.00024955347, z: -0.0010734657}
+ m_Extent: {x: 0.028195847, y: 0.028275441, z: 0.0059699193}
+ m_DirtyAABB: 0
+--- !u!137 &137000012369293346
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012703596256}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300010, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3}
+ m_Bones:
+ - {fileID: 4000010715895894}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000010715895894}
+ m_AABB:
+ m_Center: {x: -0.0012377053, y: -0.019060578, z: -0.031160343}
+ m_Extent: {x: 0.030484837, y: 0.051344868, z: 0.035910744}
+ m_DirtyAABB: 0
+--- !u!137 &137000012539278394
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010176019332}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300014, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3}
+ m_Bones:
+ - {fileID: 4000012384171158}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000012384171158}
+ m_AABB:
+ m_Center: {x: 0.0000007287599, y: 0.000013418961, z: 0.0005103166}
+ m_Extent: {x: 0.0050891, y: 0.005111113, z: 0.0025862462}
+ m_DirtyAABB: 0
+--- !u!137 &137000012561251176
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010353348604}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300008, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3}
+ m_Bones:
+ - {fileID: 4000012842689428}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000012842689428}
+ m_AABB:
+ m_Center: {x: 0.016699273, y: 0.010818437, z: -0.03636413}
+ m_Extent: {x: 0.05463389, y: 0.021678235, z: 0.05022069}
+ m_DirtyAABB: 0
+--- !u!137 &137000012577831356
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010540851970}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300012, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3}
+ m_Bones:
+ - {fileID: 4000013876876732}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000013876876732}
+ m_AABB:
+ m_Center: {x: 0.00000034226105, y: -0.0000009154901, z: 0.000357131}
+ m_Extent: {x: 0.005052495, y: 0.00505287, z: 0.0025179668}
+ m_DirtyAABB: 0
+--- !u!137 &137000013198274284
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000011251501750}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300006, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3}
+ m_Bones:
+ - {fileID: 4000010715895894}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000010715895894}
+ m_AABB:
+ m_Center: {x: -0.016699273, y: 0.010818433, z: -0.03636414}
+ m_Extent: {x: 0.05463389, y: 0.021678232, z: 0.050220694}
+ m_DirtyAABB: 0
+--- !u!137 &137000013701477334
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000012054331002}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300004, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3}
+ m_Bones:
+ - {fileID: 4000010715895894}
+ - {fileID: 4000013724697446}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000010715895894}
+ m_AABB:
+ m_Center: {x: -0.010547765, y: 0.0049847644, z: 0.002247721}
+ m_Extent: {x: 0.010899376, y: 0.010843772, z: 0.007860379}
+ m_DirtyAABB: 0
+--- !u!137 &137000014119152936
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000011772014684}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300018, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3}
+ m_Bones:
+ - {fileID: 4000010768823692}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000010768823692}
+ m_AABB:
+ m_Center: {x: -0.00000026077032, y: -0.0000001359731, z: 0.00054196385}
+ m_Extent: {x: 0.0044898377, y: 0.004489343, z: 0.000747473}
+ m_DirtyAABB: 0
+--- !u!137 &137000014239696370
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1000010732039748}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300016, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3}
+ m_Bones:
+ - {fileID: 4000010768823692}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 4000010768823692}
+ m_AABB:
+ m_Center: {x: 0.00004067365, y: 0.000027449336, z: 0.0012303336}
+ m_Extent: {x: 0.0015236207, y: 0.0021297478, z: 0.000019410509}
+ m_DirtyAABB: 0
diff --git a/Assets/Oculus/Avatar/Content/Prefabs/RemoteAvatar.prefab.meta b/Assets/Oculus/Avatar/Content/Prefabs/RemoteAvatar.prefab.meta
new file mode 100644
index 0000000..3f7a713
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Prefabs/RemoteAvatar.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 90bf33f968e6bb44ea0208fc82c90a44
+timeCreated: 1468001728
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Content/Textures.meta b/Assets/Oculus/Avatar/Content/Textures.meta
new file mode 100644
index 0000000..de6bf6a
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Textures.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: bdcbd118b7677cd4095ea9260191f2f6
+folderAsset: yes
+timeCreated: 1536104808
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_1024.png b/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_1024.png
new file mode 100644
index 0000000..65ae94c
Binary files /dev/null and b/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_1024.png differ
diff --git a/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_1024.png.meta b/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_1024.png.meta
new file mode 100644
index 0000000..12aa695
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_1024.png.meta
@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: 502d438d2584976448c3cdb146ed836d
+timeCreated: 1518638636
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 7
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_2048.png b/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_2048.png
new file mode 100644
index 0000000..a81806a
Binary files /dev/null and b/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_2048.png differ
diff --git a/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_2048.png.meta b/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_2048.png.meta
new file mode 100644
index 0000000..61ae20c
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_2048.png.meta
@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: b3e87b1024f5fa8408d004b398e7b0c0
+timeCreated: 1518638636
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 7
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_256.png b/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_256.png
new file mode 100644
index 0000000..54e5283
Binary files /dev/null and b/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_256.png differ
diff --git a/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_256.png.meta b/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_256.png.meta
new file mode 100644
index 0000000..69a14cd
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_256.png.meta
@@ -0,0 +1,68 @@
+fileFormatVersion: 2
+guid: 7d8da3d06466cc04da8c020819170a59
+timeCreated: 1534371261
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Content/Textures/fallback_normal_1024.tif b/Assets/Oculus/Avatar/Content/Textures/fallback_normal_1024.tif
new file mode 100644
index 0000000..4730a9a
Binary files /dev/null and b/Assets/Oculus/Avatar/Content/Textures/fallback_normal_1024.tif differ
diff --git a/Assets/Oculus/Avatar/Content/Textures/fallback_normal_1024.tif.meta b/Assets/Oculus/Avatar/Content/Textures/fallback_normal_1024.tif.meta
new file mode 100644
index 0000000..65aa22c
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Textures/fallback_normal_1024.tif.meta
@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: 9fb4a3be60417d043865e457a9d51e63
+timeCreated: 1518638636
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 7
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Content/Textures/fallback_normal_2048.png b/Assets/Oculus/Avatar/Content/Textures/fallback_normal_2048.png
new file mode 100644
index 0000000..9d92996
Binary files /dev/null and b/Assets/Oculus/Avatar/Content/Textures/fallback_normal_2048.png differ
diff --git a/Assets/Oculus/Avatar/Content/Textures/fallback_normal_2048.png.meta b/Assets/Oculus/Avatar/Content/Textures/fallback_normal_2048.png.meta
new file mode 100644
index 0000000..6c93605
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Textures/fallback_normal_2048.png.meta
@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: 22a046c12fc7f3c4d98a98add109fa96
+timeCreated: 1518638636
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 7
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Content/Textures/fallback_normal_256.png b/Assets/Oculus/Avatar/Content/Textures/fallback_normal_256.png
new file mode 100644
index 0000000..28adeac
Binary files /dev/null and b/Assets/Oculus/Avatar/Content/Textures/fallback_normal_256.png differ
diff --git a/Assets/Oculus/Avatar/Content/Textures/fallback_normal_256.png.meta b/Assets/Oculus/Avatar/Content/Textures/fallback_normal_256.png.meta
new file mode 100644
index 0000000..3321662
--- /dev/null
+++ b/Assets/Oculus/Avatar/Content/Textures/fallback_normal_256.png.meta
@@ -0,0 +1,68 @@
+fileFormatVersion: 2
+guid: 93a54b3b63bcc6d49b16f6bdb655b940
+timeCreated: 1534371337
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Editor.meta b/Assets/Oculus/Avatar/Editor.meta
new file mode 100644
index 0000000..cc144f7
--- /dev/null
+++ b/Assets/Oculus/Avatar/Editor.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 6f6a577c077cce945b722f02f34c29f3
+folderAsset: yes
+timeCreated: 1472072258
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Editor/AvatarMaterialEditor.cs b/Assets/Oculus/Avatar/Editor/AvatarMaterialEditor.cs
new file mode 100644
index 0000000..6d2d09f
--- /dev/null
+++ b/Assets/Oculus/Avatar/Editor/AvatarMaterialEditor.cs
@@ -0,0 +1,633 @@
+using UnityEngine;
+using UnityEditor;
+using NUnit.Framework;
+using System.Linq;
+using System.Collections.Generic;
+using System;
+
+public class AvatarMaterialEditor : MaterialEditor {
+
+ static Dictionary layerVisibilityMasks = new Dictionary();
+ const int MaxLayerCount = 8;
+
+ private const string NormalMapPrefix = "NORMAL_MAP";
+ private const string ParallaxPrefix = "PARALLAX";
+ private const string RoughnessPrefix = "ROUGHNESS";
+ private const string LayerKeywordPrefix = "LAYERS_";
+ private const string AlphaMaskUniform = "_AlphaMask";
+ private const string DarkMultUniform = "_DarkMultiplier";
+ private const string BaseColorUniform = "_BaseColor";
+ private const string BaseMaskTypeUniform = "_BaseMaskType";
+ private const string BaseMaskParametersUniform = "_BaseMaskParameters";
+ private const string BaseMaskAxisUniform = "_BaseMaskAxis";
+ private const string NormalMapUniform = "_NormalMap";
+ private const string ParallaxMapUniform = "_ParallaxMap";
+ private const string RoughnessMapUniform = "_RoughnessMap";
+ private const string LayerSurfacePrefix = "_LayerSurface";
+ private const string LayerColorPrefix = "_LayerColor";
+ private const string LayerSampleParametersPrefix = "_LayerSampleParameters";
+ private const string LayerMaskTypePrefix = "_LayerMaskType";
+ private const string LayerMaskParametersPrefix = "_LayerMaskParameters";
+ private const string LayerMaskAxisPrefix = "_LayerMaskAxis";
+ private const string LayerBlendModePrefix = "_LayerBlendMode";
+ private const string LayerSampleModePrefix = "_LayerSampleMode";
+
+ enum LayerSampleMode : int
+ {
+ Color,
+ Texture,
+ TextureSingleChannel,
+ Parallax,
+ RSRM,
+ Count
+ }
+ static readonly string[] layerSampleModeLabels = new string[(int)LayerSampleMode.Count] { "Color", "Texture", "Texture (single channel)", "Parallax", "RSRM" };
+
+ enum LayerMaskType : int
+ {
+ None,
+ Positional,
+ ViewReflection,
+ Fresnel,
+ Pulse,
+ Count
+ }
+ static readonly string[] layerMaskTypeLabels = new string[(int)LayerMaskType.Count] { "None", "Positional", "View reflection", "Fresnel", "Pulse" };
+
+ enum LayerBlendMode : int
+ {
+ Add,
+ Multiply,
+ Count
+ }
+ static readonly string[] layerBlendModeLabels = new string[(int)LayerBlendMode.Count] { "Add", "Multiply" };
+
+ Material[] previewMaterials = new Material[MaxLayerCount];
+ Vector4[,] sampleParametersCache = new Vector4[MaxLayerCount, (int)LayerSampleMode.Count];
+ Vector4[][] maskParametersCache = new Vector4[MaxLayerCount][];
+ Vector4[][] maskAxisCache = new Vector4[MaxLayerCount][];
+ Vector4[] baseMaskParametersCache = new Vector4[(int)LayerMaskType.Count];
+ Vector4[] baseMaskAxisCache = new Vector4[(int)LayerMaskType.Count];
+ PreviewRenderUtility previewUtility;
+ Mesh previewMesh;
+
+ static readonly Vector4 PositionalMaskDefaults = new Vector4(0.0f, 1.0f, 1.0f, 0.0f);
+ static readonly Vector4 ViewReflectionMaskDefaults = new Vector4(1.0f, 0.0f, 1.0f, 0.0f);
+ static readonly Vector4 FresnelMaskDefaults = new Vector4(1.0f, 0.0f, 1.0f, 1.0f);
+ static readonly Vector4 PulseMaskDefaults = new Vector4(1.0f, 0.0f, 1.0f, 0.0f);
+ static readonly Vector4 MaskAxisDefault = new Vector4(0.0f, 1.0f, 0.0f, 0.0f);
+
+ void Init()
+ {
+ if (previewUtility == null)
+ {
+ previewUtility = new PreviewRenderUtility();
+ GameObject gameObject = (GameObject)EditorGUIUtility.LoadRequired("Previews/PreviewMaterials.fbx");
+ previewMesh = gameObject.transform.Find("sphere").GetComponent().sharedMesh;
+ }
+
+ baseMaskParametersCache[(int)LayerMaskType.Positional] = PositionalMaskDefaults;
+ baseMaskParametersCache[(int)LayerMaskType.ViewReflection] = ViewReflectionMaskDefaults;
+ baseMaskParametersCache[(int)LayerMaskType.Fresnel] = FresnelMaskDefaults;
+ baseMaskParametersCache[(int)LayerMaskType.Pulse] = PulseMaskDefaults;
+
+ baseMaskAxisCache[(int)LayerMaskType.Positional] = MaskAxisDefault;
+ baseMaskAxisCache[(int)LayerMaskType.ViewReflection] = MaskAxisDefault;
+
+ for (int i = 0; i < MaxLayerCount; ++i)
+ {
+ sampleParametersCache[i, (int)LayerSampleMode.Color] = new Vector4(1.0f, 1.0f, 1.0f, 1.0f);
+ sampleParametersCache[i, (int)LayerSampleMode.Texture] = new Vector4(0.0f, 0.0f, 1.0f, 1.0f);
+ sampleParametersCache[i, (int)LayerSampleMode.TextureSingleChannel] = new Vector4(1.0f, 0.0f, 0.0f, 0.0f);
+ sampleParametersCache[i, (int)LayerSampleMode.Parallax] = new Vector4(0.0f, 1.0f, 0.0f, 0.0f);
+ sampleParametersCache[i, (int)LayerSampleMode.RSRM] = new Vector4(0.0f, 1.0f, 1.0f, 0.0f);
+
+ Vector4[] parametersCache = new Vector4[(int)LayerMaskType.Count];
+ parametersCache[(int)LayerMaskType.Positional] = PositionalMaskDefaults;
+ parametersCache[(int)LayerMaskType.ViewReflection] = ViewReflectionMaskDefaults;
+ parametersCache[(int)LayerMaskType.Fresnel] = FresnelMaskDefaults;
+ parametersCache[(int)LayerMaskType.Pulse] = PulseMaskDefaults;
+ maskParametersCache[i] = parametersCache;
+
+ Vector4[] axisCache = new Vector4[(int)LayerMaskType.Count];
+ axisCache[(int)LayerMaskType.Positional] = MaskAxisDefault;
+ axisCache[(int)LayerMaskType.ViewReflection] = MaskAxisDefault;
+ axisCache[(int)LayerMaskType.Pulse] = MaskAxisDefault;
+ maskAxisCache[i] = axisCache;
+ }
+ }
+
+ static class AvatarMaterialEditorGUILayout
+ {
+ public static bool KeywordToggle(string label, Material material, string keywordPrefix)
+ {
+ bool isEnabled = material.IsKeywordEnabled(keywordPrefix + "_ON");
+ bool newIsEnabled = EditorGUILayout.Toggle(label, isEnabled);
+ if (newIsEnabled != isEnabled)
+ {
+ Undo.RecordObject(material, label + " change");
+ if (newIsEnabled)
+ {
+ material.EnableKeyword(keywordPrefix + "_ON");
+ material.DisableKeyword(keywordPrefix + "_OFF");
+ }
+ else
+ {
+ material.EnableKeyword(keywordPrefix + "_OFF");
+ material.DisableKeyword(keywordPrefix + "_ON");
+ }
+ }
+ return newIsEnabled;
+ }
+
+ public static Color ColorField(string label, Material material, string propertyName)
+ {
+ Color color = material.GetColor(propertyName);
+ Color newColor = EditorGUILayout.ColorField(label, color);
+ if (newColor != color)
+ {
+ Undo.RecordObject(material, label + " change");
+ material.SetColor(propertyName, newColor);
+ }
+ return newColor;
+ }
+
+ internal static int IntField(string label, Material material, string propertyName, string[] valueNames)
+ {
+ int currentValue = material.GetInt(propertyName);
+ int newValue = EditorGUILayout.Popup(label, currentValue, valueNames);
+ if (newValue != currentValue)
+ {
+ Undo.RecordObject(material, label + " change");
+ material.SetInt(propertyName, newValue);
+ }
+ return newValue;
+ }
+
+ internal static Vector2 Vector2Field(string label, Material material, string propertyName)
+ {
+ Vector4 currentValue = material.GetVector(propertyName);
+ Vector2 currentVec2 = new Vector2(currentValue.x, currentValue.y);
+ Vector2 newVec2 = EditorGUILayout.Vector2Field(label, currentVec2);
+ if (newVec2 != currentVec2)
+ {
+ Undo.RecordObject(material, label + " change");
+ material.SetVector(propertyName, new Vector4(newVec2.x, newVec2.y, currentValue.z, currentValue.w));
+ }
+ return newVec2;
+ }
+
+ internal static Vector3 Vector3Field(string label, Material material, string propertyName)
+ {
+ Vector4 currentValue = material.GetVector(propertyName);
+ Vector3 currentVec3 = new Vector3(currentValue.x, currentValue.y, currentValue.z);
+ Vector3 newVec3 = EditorGUILayout.Vector3Field(label, currentVec3);
+ if (newVec3 != currentVec3)
+ {
+ Undo.RecordObject(material, label + " change");
+ material.SetVector(propertyName, new Vector4(newVec3.x, newVec3.y, newVec3.z, currentValue.w));
+ }
+ return newVec3;
+ }
+
+ internal static float VectorComponentField(string label, Material material, string propertyName, int componentIndex)
+ {
+ Vector4 currentValue = material.GetVector(propertyName);
+ float currentComponent = currentValue[componentIndex];
+ float newComponent = EditorGUILayout.FloatField(label, currentComponent);
+ if (newComponent != currentComponent)
+ {
+ Undo.RecordObject(material, label + " change");
+ currentValue[componentIndex] = newComponent;
+ material.SetVector(propertyName, currentValue);
+ }
+ return newComponent;
+ }
+
+ internal static Vector4 ChannelMaskField(string label, Material material, string propertyName)
+ {
+ Vector4 currentValue = material.GetVector(propertyName);
+ int currentChannel = 0;
+ for (int i = 0; i < 4; ++i)
+ {
+ if (currentValue[i] != 0)
+ {
+ currentChannel = i;
+ break;
+ }
+ }
+ int newChannel = EditorGUILayout.IntPopup(label, currentChannel, new string[] { "R", "G", "B", "A" }, new int[] { 0, 1, 2, 3 });
+ if (newChannel != currentChannel)
+ {
+ Vector4 channelMask = Vector4.zero;
+ channelMask[newChannel] = 1.0f;
+ Undo.RecordObject(material, label + " change");
+ currentValue = channelMask;
+ material.SetVector(propertyName, currentValue);
+ }
+ return currentValue;
+ }
+ }
+
+ void MaskField(
+ string label,
+ Material material,
+ string maskTypePropertyName,
+ string maskParametersPropertyName,
+ string maskAxisPropertyName,
+ Vector4[] axisCache,
+ Vector4[] parameterCache,
+ bool normalMapEnabled)
+ {
+ EditorGUI.BeginChangeCheck();
+ LayerMaskType maskType = (LayerMaskType)AvatarMaterialEditorGUILayout.IntField(label, material, maskTypePropertyName, layerMaskTypeLabels);
+ if (EditorGUI.EndChangeCheck())
+ {
+ material.SetVector(maskAxisPropertyName, axisCache[(int)maskType]);
+ material.SetVector(maskParametersPropertyName, parameterCache[(int)maskType]);
+ }
+
+ // Show mask-specific controls
+ EditorGUI.BeginChangeCheck();
+ switch (maskType)
+ {
+ case LayerMaskType.Positional:
+ AvatarMaterialEditorGUILayout.Vector3Field("Axis", material, maskAxisPropertyName);
+ AvatarMaterialEditorGUILayout.VectorComponentField("Center distance", material, maskParametersPropertyName, 0);
+ AvatarMaterialEditorGUILayout.VectorComponentField("Fade above", material, maskParametersPropertyName, 1);
+ AvatarMaterialEditorGUILayout.VectorComponentField("Fade below", material, maskParametersPropertyName, 2);
+ break;
+ case LayerMaskType.ViewReflection:
+ AvatarMaterialEditorGUILayout.Vector3Field("Axis", material, maskAxisPropertyName);
+ AvatarMaterialEditorGUILayout.VectorComponentField("Fade begin", material, maskParametersPropertyName, 0);
+ AvatarMaterialEditorGUILayout.VectorComponentField("Fade end", material, maskParametersPropertyName, 1);
+ if (normalMapEnabled)
+ {
+ AvatarMaterialEditorGUILayout.VectorComponentField("Normal map strength", material, maskParametersPropertyName, 2);
+ }
+ break;
+ case LayerMaskType.Fresnel:
+ AvatarMaterialEditorGUILayout.VectorComponentField("Power", material, maskParametersPropertyName, 0);
+ AvatarMaterialEditorGUILayout.VectorComponentField("Fade begin", material, maskParametersPropertyName, 1);
+ AvatarMaterialEditorGUILayout.VectorComponentField("Fade end", material, maskParametersPropertyName, 2);
+ if (normalMapEnabled)
+ {
+ AvatarMaterialEditorGUILayout.VectorComponentField("Normal map strength", material, maskParametersPropertyName, 3);
+ }
+ break;
+ case LayerMaskType.Pulse:
+ AvatarMaterialEditorGUILayout.Vector3Field("Axis", material, maskAxisPropertyName);
+ AvatarMaterialEditorGUILayout.VectorComponentField("Pulse distance", material, maskParametersPropertyName, 0);
+ AvatarMaterialEditorGUILayout.VectorComponentField("Pulse speed", material, maskParametersPropertyName, 1);
+ AvatarMaterialEditorGUILayout.VectorComponentField("Power", material, maskParametersPropertyName, 2);
+ break;
+ }
+ if (EditorGUI.EndChangeCheck())
+ {
+ parameterCache[(int)maskType] = material.GetVector(maskParametersPropertyName);
+ axisCache[(int)maskType] = material.GetVector(maskAxisPropertyName);
+ }
+ }
+
+ public override void OnInspectorGUI()
+ {
+ Init();
+ if (!isVisible)
+ {
+ return;
+ }
+ SetDefaultGUIWidths();
+
+ Material material = target as Material;
+ int layerCount = MaxLayerCount;
+ while (layerCount > 0 && !material.IsKeywordEnabled(GetPropertyName(LayerKeywordPrefix, layerCount)))
+ {
+ --layerCount;
+ }
+ if (layerCount == 0)
+ {
+ layerCount = 1;
+ material.EnableKeyword("LAYERS_" + layerCount);
+ }
+
+ EditorGUILayout.LabelField("Global material properties");
+ EditorGUILayout.BeginVertical(EditorStyles.helpBox);
+ TextureField("AlphaMask", material, AlphaMaskUniform);
+ AvatarMaterialEditorGUILayout.ColorField("DarkMultiplier", material, DarkMultUniform);
+ AvatarMaterialEditorGUILayout.ColorField("BaseColor", material, BaseColorUniform);
+ bool normalMapEnabled = AvatarMaterialEditorGUILayout.KeywordToggle("Normal map enabled", material, NormalMapPrefix);
+ if (normalMapEnabled)
+ {
+ TextureField("Normal map", material, NormalMapUniform);
+ }
+ bool parallaxEnabled = AvatarMaterialEditorGUILayout.KeywordToggle("Parallax enabled", material, ParallaxPrefix);
+ if (parallaxEnabled)
+ {
+ TextureField("Parallax map", material, ParallaxMapUniform);
+ }
+ bool roughnessEnabled = AvatarMaterialEditorGUILayout.KeywordToggle("Roughness enabled", material, RoughnessPrefix);
+ if (roughnessEnabled)
+ {
+ TextureField("Roughness map", material, RoughnessMapUniform);
+ }
+
+ MaskField("Base mask type", material, BaseMaskTypeUniform, BaseMaskParametersUniform, BaseMaskAxisUniform, baseMaskAxisCache, baseMaskParametersCache, normalMapEnabled);
+
+ EditorGUILayout.EndVertical();
+
+ int layerVisibilityMask = 0;
+ layerVisibilityMasks.TryGetValue(material, out layerVisibilityMask);
+
+ EditorGUILayout.LabelField("Layers");
+ EditorGUI.indentLevel++;
+ EditorGUILayout.BeginVertical(EditorStyles.helpBox);
+ int? removeLayerIndex = null;
+ int? swapSource = null;
+ int? swapTarget = null;
+ for (int i = 0; i < layerCount; ++i)
+ {
+
+ // Draw the preview material
+ if (previewMaterials[i] == null)
+ previewMaterials[i] = CreatePreviewMaterial(material, i);
+
+ const int previewSize = 64;
+ const int buttonSize = 20;
+ Rect layerHeaderRect = GUILayoutUtility.GetRect(previewSize, previewSize, GUILayout.ExpandWidth(true));
+
+ // Draw the preview texture
+#if UNITY_2017_1_OR_NEWER
+ Camera cam = previewUtility.camera;
+#else
+ Camera cam = previewUtility.m_Camera;
+#endif
+ cam.transform.position = Vector3.forward * 5.0f;
+ cam.transform.rotation = Quaternion.identity;
+ cam.transform.LookAt(Vector3.zero);
+ previewUtility.BeginStaticPreview(new Rect(0, 0, previewSize, previewSize));
+ previewUtility.DrawMesh(previewMesh, Vector3.zero, Quaternion.identity, previewMaterials[i], 0);
+ cam.Render();
+ Texture preview = previewUtility.EndStaticPreview();
+ GUI.Label(new Rect(layerHeaderRect.xMax - previewSize - buttonSize, layerHeaderRect.y, previewSize, previewSize), preview);
+
+ float yButton = layerHeaderRect.y;
+ EditorGUI.BeginDisabledGroup(layerCount <= 1);
+ if (GUI.Button(new Rect(layerHeaderRect.xMax - buttonSize, yButton, buttonSize, buttonSize), new GUIContent("X", "Remove layer")))
+ {
+ removeLayerIndex = i;
+ }
+ yButton += buttonSize + 4;
+ EditorGUI.EndDisabledGroup();
+
+ EditorGUI.BeginDisabledGroup(i == 0);
+ if (GUI.Button(new Rect(layerHeaderRect.xMax - buttonSize, yButton, buttonSize, buttonSize), new GUIContent("^", "Move layer up")))
+ {
+ swapSource = i;
+ swapTarget = i - 1;
+ }
+ yButton += buttonSize;
+ EditorGUI.EndDisabledGroup();
+
+ EditorGUI.BeginDisabledGroup(i == layerCount - 1);
+ if (GUI.Button(new Rect(layerHeaderRect.xMax - buttonSize, yButton, buttonSize, buttonSize), new GUIContent("v", "Move layer down")))
+ {
+ swapSource = i;
+ swapTarget = i + 1;
+ }
+ yButton += buttonSize;
+ EditorGUI.EndDisabledGroup();
+
+ // Create a toggleable group for the layer
+ int layerMaskBit = 1 << i;
+ bool layerVisible = (layerVisibilityMask & layerMaskBit) != 0;
+ layerVisible = EditorGUI.Foldout(layerHeaderRect, layerVisible, string.Format("Layer {0}", i + 1));
+
+ if (layerVisible)
+ layerVisibilityMask |= layerMaskBit;
+ else
+ layerVisibilityMask &= ~layerMaskBit;
+ if (layerVisible)
+ {
+ EditorGUILayout.BeginVertical(EditorStyles.helpBox);
+ EditorGUI.BeginChangeCheck();
+ {
+ // Handle the blend mode
+ AvatarMaterialEditorGUILayout.IntField("Blend mode", material, GetPropertyName(LayerBlendModePrefix, i), layerBlendModeLabels);
+
+ // Handle the sample mode selector
+ string layerSampleParametersProperty = GetPropertyName(LayerSampleParametersPrefix, i);
+ EditorGUI.BeginChangeCheck();
+ LayerSampleMode sampleMode = (LayerSampleMode)AvatarMaterialEditorGUILayout.IntField("Sample mode", material, GetPropertyName(LayerSampleModePrefix, i), layerSampleModeLabels);
+ if (EditorGUI.EndChangeCheck())
+ {
+ material.SetVector(layerSampleParametersProperty, sampleParametersCache[i, (int)sampleMode]);
+ }
+
+ // Show the mode-specific sample controls
+ EditorGUI.BeginChangeCheck();
+ AvatarMaterialEditorGUILayout.ColorField("Surface color", material, GetPropertyName(LayerColorPrefix, i));
+ switch (sampleMode) {
+ case LayerSampleMode.Texture:
+ TextureField("Surface texture", material, GetPropertyName(LayerSurfacePrefix, i));
+ AvatarMaterialEditorGUILayout.Vector2Field("Panning speed", material, layerSampleParametersProperty);
+ break;
+ case LayerSampleMode.TextureSingleChannel:
+ TextureField("Surface texture", material, GetPropertyName(LayerSurfacePrefix, i));
+ AvatarMaterialEditorGUILayout.ChannelMaskField("Channel", material, layerSampleParametersProperty);
+ break;
+ case LayerSampleMode.Parallax:
+ TextureField("Surface texture", material, GetPropertyName(LayerSurfacePrefix, i));
+ AvatarMaterialEditorGUILayout.VectorComponentField("Parallax min height", material, layerSampleParametersProperty, 0);
+ AvatarMaterialEditorGUILayout.VectorComponentField("Parallax max height", material, layerSampleParametersProperty, 1);
+ break;
+ case LayerSampleMode.RSRM:
+ TextureField("RSRM texture", material, GetPropertyName(LayerSurfacePrefix, i));
+ if (roughnessEnabled)
+ {
+ AvatarMaterialEditorGUILayout.VectorComponentField("Roughness min", material, layerSampleParametersProperty, 0);
+ AvatarMaterialEditorGUILayout.VectorComponentField("Roughness max", material, layerSampleParametersProperty, 1);
+ }
+ else
+ {
+ AvatarMaterialEditorGUILayout.VectorComponentField("Roughness", material, layerSampleParametersProperty, 0);
+ }
+ if (normalMapEnabled)
+ {
+ AvatarMaterialEditorGUILayout.VectorComponentField("Normal map strength", material, layerSampleParametersProperty, 2);
+ }
+ break;
+ }
+ if (EditorGUI.EndChangeCheck())
+ {
+ sampleParametersCache[i, (int)sampleMode] = material.GetVector(layerSampleParametersProperty);
+ }
+
+ // Handle the mask mode selector
+ string maskParametersName = GetPropertyName(LayerMaskParametersPrefix, i);
+ string maskAxisName = GetPropertyName(LayerMaskAxisPrefix, i);
+ MaskField("Mask Type", material, GetPropertyName(LayerMaskTypePrefix, i), maskParametersName, maskAxisName, maskAxisCache[i], maskParametersCache[i], normalMapEnabled);
+ }
+ if (EditorGUI.EndChangeCheck())
+ {
+ previewMaterials[i] = null;
+ }
+ EditorGUILayout.EndVertical();
+ }
+ }
+ layerVisibilityMasks[material] = layerVisibilityMask;
+
+ if (layerCount < MaxLayerCount)
+ {
+ if (GUILayout.Button("Add layer"))
+ {
+ Undo.RecordObject(material, "Add layer");
+ SetLayerCount(material, layerCount + 1);
+ removeLayerIndex = null;
+ }
+ }
+ if (removeLayerIndex.HasValue)
+ {
+ Undo.RecordObject(material, "Remove layer");
+ for (int i = removeLayerIndex.Value; i < layerCount - 1; ++i)
+ {
+ CopyAttributes(material, i + 1, i);
+ }
+ SetLayerCount(material, layerCount - 1);
+ }
+ if (swapSource.HasValue && swapTarget.HasValue)
+ {
+ Undo.RecordObject(material, string.Format("Swap layers {1} and {0}", swapSource.Value, swapTarget.Value));
+ SwapAttributes(material, swapSource.Value, swapTarget.Value);
+ }
+
+ EditorGUI.indentLevel--;
+ EditorGUILayout.EndVertical();
+ EditorUtility.SetDirty(target);
+ }
+
+ public Texture TextureField(string label, Material material, string propertyName)
+ {
+ Texture texture = material.GetTexture(propertyName);
+ MaterialProperty property = MaterialEditor.GetMaterialProperty(new[] { material }, propertyName);
+ Texture newTexture = base.TextureProperty(property, label);
+ if (newTexture != texture)
+ {
+ Undo.RecordObject(material, label + " change");
+ material.SetTexture(propertyName, newTexture);
+ }
+ return newTexture;
+ }
+
+ private Material CreatePreviewMaterial(Material material, int layerIndex)
+ {
+ Material previewMaterial = new Material(material);
+ CopyAttributes(previewMaterial, layerIndex, 0);
+ SetLayerCount(previewMaterial, 1);
+ previewMaterial.SetVector(DarkMultUniform, new Vector4(0.6f, 0.6f, 0.6f, 1.0f));
+ previewMaterial.SetVector(BaseColorUniform, new Vector4(0.0f, 0.0f, 0.0f, 1.0f));
+ previewMaterial.SetTexture(AlphaMaskUniform, EditorGUIUtility.whiteTexture);
+ return previewMaterial;
+ }
+
+ private void SetLayerCount(Material material, int layerCount)
+ {
+ for (int i = 0; i < MaxLayerCount; ++i)
+ {
+ string layerCountProperty = GetPropertyName("LAYERS_", i + 1);
+ if (i + 1 == layerCount)
+ material.EnableKeyword(layerCountProperty);
+ else
+ material.DisableKeyword(layerCountProperty);
+ }
+ }
+
+ private static string GetPropertyName(string baseName, int index)
+ {
+ return string.Format("{0}{1}", baseName, index);
+ }
+
+ class LayerAttributes
+ {
+ public Texture surface { get; private set; }
+ public Color color { get; private set; }
+ public LayerMaskType maskType { get; private set; }
+ public Vector4 maskParameters { get; private set; }
+ public Vector4 maskAxis { get; private set; }
+ public LayerSampleMode sampleMode { get; private set; }
+ public Vector4 sampleParameters { get; private set; }
+ public LayerBlendMode blendMode { get; private set; }
+ public LayerAttributes()
+ {
+ this.surface = null;
+ this.color = Color.white;
+ this.maskType = (int)LayerMaskType.None;
+ this.maskParameters = Vector4.zero;
+ this.maskAxis = new Vector4(0.0f, 1.0f, 0.0f, 0.0f);
+ this.sampleMode = (int)LayerSampleMode.Color;
+ this.sampleParameters = new Vector4(1.0f, 1.0f, 1.0f, 1.0f);
+ this.blendMode = (int)LayerBlendMode.Add;
+ }
+ public LayerAttributes(
+ Texture surface,
+ Color color,
+ LayerMaskType maskType,
+ Vector3 maskParameters,
+ Vector4 maskAxis,
+ LayerSampleMode sampleMode,
+ Vector4 sampleParameters,
+ LayerBlendMode blendMode
+ ) {
+ this.surface = surface;
+ this.color = color;
+ this.maskType = maskType;
+ this.maskParameters = maskParameters;
+ this.maskAxis = maskAxis;
+ this.sampleMode = sampleMode;
+ this.sampleParameters = sampleParameters;
+ this.blendMode = blendMode;
+ }
+ }
+
+ private void CopyAttributes(Material material, int sourceIndex, int targetIndex)
+ {
+ LayerAttributes attributes = GetLayerAttributes(material, sourceIndex);
+ SetLayerAttributes(material, targetIndex, attributes);
+ previewMaterials[targetIndex] = null;
+ }
+
+ private void SwapAttributes(Material material, int sourceIndex, int targetIndex)
+ {
+ LayerAttributes sourceAttributes = GetLayerAttributes(material, sourceIndex);
+ LayerAttributes targetAttributes = GetLayerAttributes(material, targetIndex);
+ SetLayerAttributes(material, sourceIndex, targetAttributes);
+ SetLayerAttributes(material, targetIndex, sourceAttributes);
+ previewMaterials[sourceIndex] = null;
+ previewMaterials[targetIndex] = null;
+ }
+
+ private static LayerAttributes GetLayerAttributes(Material material, int layerIndex)
+ {
+ return new LayerAttributes(
+ material.GetTexture(GetPropertyName(LayerSurfacePrefix, layerIndex)),
+ material.GetColor(GetPropertyName(LayerColorPrefix, layerIndex)),
+ (LayerMaskType)material.GetInt(GetPropertyName(LayerMaskTypePrefix, layerIndex)),
+ material.GetVector(GetPropertyName(LayerMaskParametersPrefix, layerIndex)),
+ material.GetVector(GetPropertyName(LayerMaskAxisPrefix, layerIndex)),
+ (LayerSampleMode)material.GetInt(GetPropertyName(LayerSampleModePrefix, layerIndex)),
+ material.GetVector(GetPropertyName(LayerSampleParametersPrefix, layerIndex)),
+ (LayerBlendMode)material.GetInt(GetPropertyName(LayerBlendModePrefix, layerIndex))
+ );
+ }
+
+ private static void SetLayerAttributes(Material material, int layerIndex, LayerAttributes attributes)
+ {
+ material.SetTexture(GetPropertyName(LayerSurfacePrefix, layerIndex), attributes.surface);
+ material.SetColor(GetPropertyName(LayerColorPrefix, layerIndex), attributes.color);
+ material.SetInt(GetPropertyName(LayerMaskTypePrefix, layerIndex), (int)attributes.maskType);
+ material.SetVector(GetPropertyName(LayerMaskParametersPrefix, layerIndex), attributes.maskParameters);
+ material.SetVector(GetPropertyName(LayerMaskAxisPrefix, layerIndex), attributes.maskAxis);
+ material.SetInt(GetPropertyName(LayerSampleModePrefix, layerIndex), (int)attributes.sampleMode);
+ material.SetVector(GetPropertyName(LayerSampleParametersPrefix, layerIndex), attributes.sampleParameters);
+ material.SetInt(GetPropertyName(LayerBlendModePrefix, layerIndex), (int)attributes.blendMode);
+ }
+}
diff --git a/Assets/Oculus/Avatar/Editor/AvatarMaterialEditor.cs.meta b/Assets/Oculus/Avatar/Editor/AvatarMaterialEditor.cs.meta
new file mode 100644
index 0000000..e64ea04
--- /dev/null
+++ b/Assets/Oculus/Avatar/Editor/AvatarMaterialEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: fdddb32bde2072f4da6baf73fd9ebddc
+timeCreated: 1470865818
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Plugins.meta b/Assets/Oculus/Avatar/Plugins.meta
new file mode 100644
index 0000000..ca52fad
--- /dev/null
+++ b/Assets/Oculus/Avatar/Plugins.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 7e0c9e63876be544fb12244c66f5bced
+folderAsset: yes
+timeCreated: 1522867061
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Plugins/Android32.meta b/Assets/Oculus/Avatar/Plugins/Android32.meta
new file mode 100644
index 0000000..b4ad94c
--- /dev/null
+++ b/Assets/Oculus/Avatar/Plugins/Android32.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: c75924ae6be2e4d4a8c9021c599ac872
+folderAsset: yes
+timeCreated: 1522867080
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Plugins/Android32/libovravatarloader.so b/Assets/Oculus/Avatar/Plugins/Android32/libovravatarloader.so
new file mode 100644
index 0000000..094f389
Binary files /dev/null and b/Assets/Oculus/Avatar/Plugins/Android32/libovravatarloader.so differ
diff --git a/Assets/Oculus/Avatar/Plugins/Android32/libovravatarloader.so.meta b/Assets/Oculus/Avatar/Plugins/Android32/libovravatarloader.so.meta
new file mode 100644
index 0000000..146b37b
--- /dev/null
+++ b/Assets/Oculus/Avatar/Plugins/Android32/libovravatarloader.so.meta
@@ -0,0 +1,25 @@
+fileFormatVersion: 2
+guid: 0dc1a28a4f6367642b859b703b901f30
+timeCreated: 1516392277
+licenseType: Store
+PluginImporter:
+ serializedVersion: 1
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ Android:
+ enabled: 1
+ settings:
+ CPU: ARMv7
+ Any:
+ enabled: 0
+ settings: {}
+ Editor:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Resources.meta b/Assets/Oculus/Avatar/Resources.meta
new file mode 100644
index 0000000..4999339
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 3eeca1466db69a046849a21351c6ab64
+folderAsset: yes
+timeCreated: 1536104808
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Resources/Materials.meta b/Assets/Oculus/Avatar/Resources/Materials.meta
new file mode 100644
index 0000000..a546714
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: a082ff1bb115495438c0dbd2a47e2b0f
+folderAsset: yes
+timeCreated: 1525971172
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Resources/Materials/AvatarMaterialStateShader.cginc b/Assets/Oculus/Avatar/Resources/Materials/AvatarMaterialStateShader.cginc
new file mode 100644
index 0000000..6b37b13
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/AvatarMaterialStateShader.cginc
@@ -0,0 +1,318 @@
+#ifndef AVATAR_UTIL_CG_INCLUDED
+#define AVATAR_UTIL_CG_INCLUDED
+
+#include "UnityCG.cginc"
+
+#define SAMPLE_MODE_COLOR 0
+#define SAMPLE_MODE_TEXTURE 1
+#define SAMPLE_MODE_TEXTURE_SINGLE_CHANNEL 2
+#define SAMPLE_MODE_PARALLAX 3
+#define SAMPLE_MODE_RSRM 4
+
+#define MASK_TYPE_NONE 0
+#define MASK_TYPE_POSITIONAL 1
+#define MASK_TYPE_REFLECTION 2
+#define MASK_TYPE_FRESNEL 3
+#define MASK_TYPE_PULSE 4
+
+#define BLEND_MODE_ADD 0
+#define BLEND_MODE_MULTIPLY 1
+
+#ifdef LAYERS_1
+#define LAYER_COUNT 1
+#elif LAYERS_2
+#define LAYER_COUNT 2
+#elif LAYERS_3
+#define LAYER_COUNT 3
+#elif LAYERS_4
+#define LAYER_COUNT 4
+#elif LAYERS_5
+#define LAYER_COUNT 5
+#elif LAYERS_6
+#define LAYER_COUNT 6
+#elif LAYERS_7
+#define LAYER_COUNT 7
+#elif LAYERS_8
+#define LAYER_COUNT 8
+#endif
+
+#define DECLARE_LAYER_UNIFORMS(index) \
+ int _LayerSampleMode##index; \
+ int _LayerBlendMode##index; \
+ int _LayerMaskType##index; \
+ fixed4 _LayerColor##index; \
+ sampler2D _LayerSurface##index; \
+ float4 _LayerSurface##index##_ST; \
+ float4 _LayerSampleParameters##index; \
+ float4 _LayerMaskParameters##index; \
+ float4 _LayerMaskAxis##index;
+
+DECLARE_LAYER_UNIFORMS(0)
+DECLARE_LAYER_UNIFORMS(1)
+DECLARE_LAYER_UNIFORMS(2)
+DECLARE_LAYER_UNIFORMS(3)
+DECLARE_LAYER_UNIFORMS(4)
+DECLARE_LAYER_UNIFORMS(5)
+DECLARE_LAYER_UNIFORMS(6)
+DECLARE_LAYER_UNIFORMS(7)
+
+struct VertexOutput
+{
+ float4 pos : SV_POSITION;
+ float2 texcoord : TEXCOORD0;
+ float3 worldPos : TEXCOORD1;
+ float3 worldNormal : TEXCOORD2;
+ float3 viewDir : TEXCOORD3;
+ float4 vertColor : COLOR;
+
+#if NORMAL_MAP_ON || PARALLAX_ON
+ float3 worldTangent : TANGENT;
+ float3 worldBitangent : TEXCOORD5;
+#endif
+};
+
+float _Alpha;
+int _BaseMaskType;
+float4 _BaseMaskParameters;
+float4 _BaseMaskAxis;
+fixed4 _DarkMultiplier;
+fixed4 _BaseColor;
+sampler2D _AlphaMask;
+float4 _AlphaMask_ST;
+sampler2D _AlphaMask2;
+float4 _AlphaMask2_ST;
+sampler2D _NormalMap;
+float4 _NormalMap_ST;
+sampler2D _ParallaxMap;
+float4 _ParallaxMap_ST;
+sampler2D _RoughnessMap;
+float4 _RoughnessMap_ST;
+float4x4 _ProjectorWorldToLocal;
+
+VertexOutput vert(appdata_full v)
+{
+ VertexOutput o;
+ UNITY_INITIALIZE_OUTPUT(VertexOutput, o);
+
+ o.texcoord = v.texcoord.xy;
+ o.worldPos = mul(unity_ObjectToWorld, v.vertex);
+ o.vertColor = v.color;
+ o.viewDir = normalize(_WorldSpaceCameraPos.xyz - o.worldPos);
+ o.worldNormal = normalize(mul(unity_ObjectToWorld, float4(v.normal, 0.0)).xyz);
+
+#if NORMAL_MAP_ON || PARALLAX_ON
+ o.worldTangent = normalize(mul(unity_ObjectToWorld, float4(v.tangent.xyz, 0.0)).xyz);
+ o.worldBitangent = normalize(cross(o.worldNormal, o.worldTangent) * v.tangent.w);
+#endif
+
+ o.pos = UnityObjectToClipPos(v.vertex);
+ return o;
+}
+
+#ifndef NORMAL_MAP_ON
+#define COMPUTE_NORMAL IN.worldNormal
+#else
+#define COMPUTE_NORMAL normalize(mul(lerp(float3(0, 0, 1), surfaceNormal, normalMapStrength), tangentTransform))
+#endif
+
+float3 ComputeColor(
+ VertexOutput IN,
+ float2 uv,
+#if PARALLAX_ON || NORMAL_MAP_ON
+ float3x3 tangentTransform,
+#endif
+#ifdef NORMAL_MAP_ON
+ float3 surfaceNormal,
+#endif
+ sampler2D surface,
+ float4 surface_ST,
+ fixed4 color,
+ int sampleMode,
+ float4 sampleParameters
+) {
+ if (sampleMode == SAMPLE_MODE_TEXTURE) {
+ float2 panning = _Time.g * sampleParameters.xy;
+ return tex2D(surface, (uv + panning) * surface_ST.xy + surface_ST.zw).rgb * color.rgb;
+ }
+ else if (sampleMode == SAMPLE_MODE_TEXTURE_SINGLE_CHANNEL) {
+ float4 channelMask = sampleParameters;
+ float4 channels = tex2D(surface, uv * surface_ST.xy + surface_ST.zw);
+ return dot(channels, channelMask) * color.rgb;
+ }
+#ifdef PARALLAX_ON
+ else if (sampleMode == SAMPLE_MODE_PARALLAX) {
+ float parallaxMinHeight = sampleParameters.x;
+ float parallaxMaxHeight = sampleParameters.y;
+ float parallaxValue = tex2D(_ParallaxMap, TRANSFORM_TEX(uv, _ParallaxMap)).r;
+ float scaledHeight = lerp(parallaxMinHeight, parallaxMaxHeight, parallaxValue);
+ float2 parallaxUV = mul(tangentTransform, IN.viewDir).xy * scaledHeight;
+ return tex2D(surface, (uv * surface_ST.xy + surface_ST.zw) + parallaxUV).rgb * color.rgb;
+ }
+#endif
+ else if (sampleMode == SAMPLE_MODE_RSRM) {
+ float roughnessMin = sampleParameters.x;
+ float roughnessMax = sampleParameters.y;
+#ifdef ROUGHNESS_ON
+ float roughnessValue = tex2D(_RoughnessMap, TRANSFORM_TEX(uv, _RoughnessMap)).r;
+ float scaledRoughness = lerp(roughnessMin, roughnessMax, roughnessValue);
+#else
+ float scaledRoughness = roughnessMin;
+#endif
+
+#ifdef NORMAL_MAP_ON
+ float normalMapStrength = sampleParameters.z;
+#endif
+ float3 viewReflect = reflect(-IN.viewDir, COMPUTE_NORMAL);
+ float viewAngle = viewReflect.y * 0.5 + 0.5;
+ return tex2D(surface, float2(scaledRoughness, viewAngle)).rgb * color.rgb;
+ }
+ return color.rgb;
+}
+
+float ComputeMask(
+ VertexOutput IN,
+#ifdef NORMAL_MAP_ON
+ float3x3 tangentTransform,
+ float3 surfaceNormal,
+#endif
+ int maskType,
+ float4 layerParameters,
+ float3 maskAxis
+) {
+ if (maskType == MASK_TYPE_POSITIONAL) {
+ float centerDistance = layerParameters.x;
+ float fadeAbove = layerParameters.y;
+ float fadeBelow = layerParameters.z;
+ float3 objPos = mul(unity_WorldToObject, float4(IN.worldPos, 1.0)).xyz;
+ float d = dot(objPos, maskAxis);
+ if (d > centerDistance) {
+ return saturate(1.0 - (d - centerDistance) / fadeAbove);
+ }
+ else {
+ return saturate(1.0 - (centerDistance - d) / fadeBelow);
+ }
+ }
+ else if (maskType == MASK_TYPE_REFLECTION) {
+ float fadeStart = layerParameters.x;
+ float fadeEnd = layerParameters.y;
+#ifdef NORMAL_MAP_ON
+ float normalMapStrength = layerParameters.z;
+#endif
+ float power = layerParameters.w;
+ float3 viewReflect = reflect(-IN.viewDir, COMPUTE_NORMAL);
+ float d = max(0.0, dot(viewReflect, maskAxis));
+ return saturate(1.0 - (d - fadeStart) / (fadeEnd - fadeStart));
+ }
+ else if (maskType == MASK_TYPE_FRESNEL) {
+ float power = layerParameters.x;
+ float fadeStart = layerParameters.y;
+ float fadeEnd = layerParameters.z;
+#ifdef NORMAL_MAP_ON
+ float normalMapStrength = layerParameters.w;
+#endif
+ float d = saturate(1.0 - max(0.0, dot(IN.viewDir, COMPUTE_NORMAL)));
+ float p = pow(d, power);
+ return saturate(lerp(fadeStart, fadeEnd, p));
+ }
+ else if (maskType == MASK_TYPE_PULSE) {
+ float distance = layerParameters.x;
+ float speed = layerParameters.y;
+ float power = layerParameters.z;
+ float3 objPos = mul(unity_WorldToObject, float4(IN.worldPos, 1.0)).xyz;
+ float d = dot(objPos, maskAxis);
+ float theta = 6.2831 * frac((d - _Time.g * speed) / distance);
+ return saturate(pow((sin(theta) * 0.5 + 0.5), power));
+ }
+ else {
+ return 1.0;
+ }
+}
+
+float3 ComputeBlend(float3 source, float3 blend, float mask, int blendMode) {
+ if (blendMode == BLEND_MODE_MULTIPLY) {
+ return source * (blend * mask);
+ }
+ else {
+ return source + (blend * mask);
+ }
+}
+
+float4 ComputeSurface(VertexOutput IN)
+{
+#if PROJECTOR_ON
+ float3 projectorPos = mul(_ProjectorWorldToLocal, float4(IN.worldPos, 1.0)).xyz;
+ if (abs(projectorPos.x) > 1.0 || abs(projectorPos.y) > 1.0 || abs(projectorPos.z) > 1.0)
+ {
+ discard;
+ }
+ float2 uv = projectorPos.xy * 0.5 + 0.5;
+#else
+ float2 uv = IN.texcoord.xy;
+#endif
+
+ fixed4 c = _BaseColor;
+ IN.worldNormal = normalize(IN.worldNormal);
+
+#if PARALLAX_ON || NORMAL_MAP_ON
+ float3x3 tangentTransform = float3x3(IN.worldTangent, IN.worldBitangent, IN.worldNormal);
+#endif
+
+#ifdef NORMAL_MAP_ON
+ float3 surfaceNormal = UnpackNormal(tex2D(_NormalMap, TRANSFORM_TEX(uv, _NormalMap)));
+#endif
+
+#if PARALLAX_ON || NORMAL_MAP_ON
+#ifndef NORMAL_MAP_ON
+#define COLOR_INPUTS IN, uv, tangentTransform
+#define MASK_INPUTS IN
+#else
+#define COLOR_INPUTS IN, uv, tangentTransform, surfaceNormal
+#define MASK_INPUTS IN, tangentTransform, surfaceNormal
+#endif
+#else
+#define COLOR_INPUTS IN, uv
+#define MASK_INPUTS IN
+#endif
+
+#define LAYER_COLOR(index) ComputeColor(COLOR_INPUTS, _LayerSurface##index, _LayerSurface##index##_ST, _LayerColor##index, _LayerSampleMode##index, _LayerSampleParameters##index)
+#define LAYER_MASK(index) ComputeMask(MASK_INPUTS, _LayerMaskType##index, _LayerMaskParameters##index, _LayerMaskAxis##index##.xyz)
+#define LAYER_BLEND(index, c) ComputeBlend(c, LAYER_COLOR(index), LAYER_MASK(index), _LayerBlendMode##index)
+
+ c.rgb = LAYER_BLEND(0, c.rgb);
+#if LAYER_COUNT > 1
+ c.rgb = LAYER_BLEND(1, c.rgb);
+#endif
+#if LAYER_COUNT > 2
+ c.rgb = LAYER_BLEND(2, c.rgb);
+#endif
+#if LAYER_COUNT > 3
+ c.rgb = LAYER_BLEND(3, c.rgb);
+#endif
+#if LAYER_COUNT > 4
+ c.rgb = LAYER_BLEND(4, c.rgb);
+#endif
+#if LAYER_COUNT > 5
+ c.rgb = LAYER_BLEND(5, c.rgb);
+#endif
+#if LAYER_COUNT > 6
+ c.rgb = LAYER_BLEND(6, c.rgb);
+#endif
+#if LAYER_COUNT > 7
+ c.rgb = LAYER_BLEND(7, c.rgb);
+#endif
+
+#ifdef VERTALPHA_ON
+ float scaledValue = IN.vertColor.a * 2.0;
+ float alpha0weight = max(0.0, 1.0 - scaledValue);
+ float alpha2weight = max(0.0, scaledValue - 1.0);
+ float alpha1weight = 1.0 - alpha0weight - alpha2weight;
+ c.a = _Alpha * c.a * (tex2D(_AlphaMask, TRANSFORM_TEX(uv, _AlphaMask)).r * alpha1weight + tex2D(_AlphaMask2, TRANSFORM_TEX(uv, _AlphaMask2)).r * alpha2weight + alpha0weight) * ComputeMask(MASK_INPUTS, _BaseMaskType, _BaseMaskParameters, _BaseMaskAxis);
+#else
+ c.a = _Alpha * c.a * tex2D(_AlphaMask, TRANSFORM_TEX(uv, _AlphaMask)).r * IN.vertColor.a * ComputeMask(MASK_INPUTS, _BaseMaskType, _BaseMaskParameters, _BaseMaskAxis);
+#endif
+ c.rgb = lerp(c.rgb, c.rgb * _DarkMultiplier, IN.vertColor.r);
+
+ return c;
+}
+
+#endif
diff --git a/Assets/Oculus/Avatar/Resources/Materials/AvatarMaterialStateShader.cginc.meta b/Assets/Oculus/Avatar/Resources/Materials/AvatarMaterialStateShader.cginc.meta
new file mode 100644
index 0000000..523b6c7
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/AvatarMaterialStateShader.cginc.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 80b6b34e742970d4bb0cdef9c74b04ae
+timeCreated: 1525971186
+licenseType: Store
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShader.shader b/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShader.shader
new file mode 100644
index 0000000..c3d6254
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShader.shader
@@ -0,0 +1,141 @@
+Shader "OvrAvatar/AvatarSurfaceShader" {
+ Properties{
+ // Global parameters
+ _Alpha("Alpha", Range(0.0, 1.0)) = 1.0
+ _DarkMultiplier("Dark Multiplier", Color) = (0.6, 0.6, 0.6, 1.0)
+ _BaseColor("Base Color", Color) = (0.0, 0.0, 0.0, 0.0)
+ _BaseMaskType("Base Mask Type", Int) = 0
+ _BaseMaskParameters("Base Mask Parameters", Vector) = (0, 0, 0, 0)
+ _BaseMaskAxis("Base Mask Axis", Vector) = (0, 1, 0, 0)
+ _AlphaMask("Alpha Mask", 2D) = "white" {}
+ _NormalMap("Normal Map", 2D) = "" {}
+ _ParallaxMap("Parallax Map", 2D) = "" {}
+ _RoughnessMap("Roughness Map", 2D) = "" {}
+
+ // Layer 0 parameters
+ _LayerSampleMode0("Layer Sample Mode 0", Int) = 0
+ _LayerBlendMode0("Layer Blend Mode 0", Int) = 0
+ _LayerMaskType0("Layer Mask Type 0", Int) = 0
+ _LayerColor0("Layer Color 0", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface0("Layer Surface 0", 2D) = "" {}
+ _LayerSampleParameters0("Layer Sample Parameters 0", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters0("Layer Mask Parameters 0", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis0("Layer Mask Axis 0", Vector) = (0, 1, 0, 0)
+
+ // Layer 1 parameters
+ _LayerSampleMode1("Layer Sample Mode 1", Int) = 0
+ _LayerBlendMode1("Layer Blend Mode 1", Int) = 0
+ _LayerMaskType1("Layer Mask Type 1", Int) = 0
+ _LayerColor1("Layer Color 1", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface1("Layer Surface 1", 2D) = "" {}
+ _LayerSampleParameters1("Layer Sample Parameters 1", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters1("Layer Mask Parameters 1", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis1("Layer Mask Axis 1", Vector) = (0, 1, 0, 0)
+
+ // Layer 2 parameters
+ _LayerSampleMode2("Layer Sample Mode 2", Int) = 0
+ _LayerBlendMode2("Layer Blend Mode 2", Int) = 0
+ _LayerMaskType2("Layer Mask Type 2", Int) = 0
+ _LayerColor2("Layer Color 2", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface2("Layer Surface 2", 2D) = "" {}
+ _LayerSampleParameters2("Layer Sample Parameters 2", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters2("Layer Mask Parameters 2", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis2("Layer Mask Axis 2", Vector) = (0, 1, 0, 0)
+
+ // Layer 3 parameters
+ _LayerSampleMode3("Layer Sample Mode 3", Int) = 0
+ _LayerBlendMode3("Layer Blend Mode 3", Int) = 0
+ _LayerMaskType3("Layer Mask Type 3", Int) = 0
+ _LayerColor3("Layer Color 3", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface3("Layer Surface 3", 2D) = "" {}
+ _LayerSampleParameters3("Layer Sample Parameters 3", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters3("Layer Mask Parameters 3", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis3("Layer Mask Axis 3", Vector) = (0, 1, 0, 0)
+
+ // Layer 4 parameters
+ _LayerSampleMode4("Layer Sample Mode 4", Int) = 0
+ _LayerBlendMode4("Layer Blend Mode 4", Int) = 0
+ _LayerMaskType4("Layer Mask Type 4", Int) = 0
+ _LayerColor4("Layer Color 4", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface4("Layer Surface 4", 2D) = "" {}
+ _LayerSampleParameters4("Layer Sample Parameters 4", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters4("Layer Mask Parameters 4", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis4("Layer Mask Axis 4", Vector) = (0, 1, 0, 0)
+
+ // Layer 5 parameters
+ _LayerSampleMode5("Layer Sample Mode 5", Int) = 0
+ _LayerBlendMode5("Layer Blend Mode 5", Int) = 0
+ _LayerMaskType5("Layer Mask Type 5", Int) = 0
+ _LayerColor5("Layer Color 5", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface5("Layer Surface 5", 2D) = "" {}
+ _LayerSampleParameters5("Layer Sample Parameters 5", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters5("Layer Mask Parameters 5", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis5("Layer Mask Axis 5", Vector) = (0, 1, 0, 0)
+
+ // Layer 6 parameters
+ _LayerSampleMode6("Layer Sample Mode 6", Int) = 0
+ _LayerBlendMode6("Layer Blend Mode 6", Int) = 0
+ _LayerMaskType6("Layer Mask Type 6", Int) = 0
+ _LayerColor6("Layer Color 6", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface6("Layer Surface 6", 2D) = "" {}
+ _LayerSampleParameters6("Layer Sample Parameters 6", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters6("Layer Mask Parameters 6", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis6("Layer Mask Axis 6", Vector) = (0, 1, 0, 0)
+
+ // Layer 7 parameters
+ _LayerSampleMode7("Layer Sample Mode 7", Int) = 0
+ _LayerBlendMode7("Layer Blend Mode 7", Int) = 0
+ _LayerMaskType7("Layer Mask Type 7", Int) = 0
+ _LayerColor7("Layer Color 7", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface7("Layer Surface 7", 2D) = "" {}
+ _LayerSampleParameters7("Layer Sample Parameters 7", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters7("Layer Mask Parameters 7", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis7("Layer Mask Axis 7", Vector) = (0, 1, 0, 0)
+ }
+
+ SubShader
+ {
+ Tags
+ {
+ "Queue" = "Transparent"
+ "RenderType" = "Transparent"
+ }
+
+ Blend SrcAlpha OneMinusSrcAlpha
+ ZWrite Off
+ LOD 200
+
+ Pass
+ {
+ Name "FORWARD"
+ Tags
+ {
+ "LightMode" = "ForwardBase"
+ }
+
+ CGPROGRAM
+ #pragma only_renderers d3d11 gles3 gles
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma target 3.0
+ #pragma multi_compile PROJECTOR_OFF PROJECTOR_ON
+ #pragma multi_compile NORMAL_MAP_OFF NORMAL_MAP_ON
+ #pragma multi_compile PARALLAX_OFF PARALLAX_ON
+ #pragma multi_compile ROUGHNESS_OFF ROUGHNESS_ON
+ #pragma multi_compile VERTALPHA_OFF VERTALPHA_ON
+ #pragma multi_compile LAYERS_1 LAYERS_2 LAYERS_3 LAYERS_4 LAYERS_5 LAYERS_6 LAYERS_7 LAYERS_8
+
+ #include "Assets/Oculus/Avatar/Resources/Materials/AvatarMaterialStateShader.cginc"
+
+ float4 frag(VertexOutput IN) : COLOR
+ {
+ return ComputeSurface(IN);
+ }
+
+ ENDCG
+ }
+ }
+
+ FallBack "Diffuse"
+ CustomEditor "AvatarMaterialEditor"
+}
diff --git a/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShader.shader.meta b/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShader.shader.meta
new file mode 100644
index 0000000..ba3836a
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShader.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 73f67c4e7bf718b4385aa6b1f8a06591
+timeCreated: 1525971190
+licenseType: Store
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderPBS.shader b/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderPBS.shader
new file mode 100644
index 0000000..901f16f
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderPBS.shader
@@ -0,0 +1,79 @@
+// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
+
+Shader "OvrAvatar/AvatarSurfaceShaderPBS" {
+ Properties{
+ // Global parameters
+ _Alpha("Alpha", Range(0.0, 1.0)) = 1.0
+ _Albedo("Albedo (RGB)", 2D) = "" {}
+ _Surface("Metallic (R) Occlusion (G) and Smoothness (A)", 2D) = "" {}
+ }
+ SubShader{
+ Tags {
+ "Queue" = "Transparent"
+ "RenderType" = "Transparent"
+ }
+
+ Pass {
+ ZWrite On
+ Cull Off
+ ColorMask 0
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma target 3.0
+ #include "UnityCG.cginc"
+
+ struct v2f {
+ float4 position : SV_POSITION;
+ };
+ v2f vert(appdata_full v) {
+ // Output
+ v2f output;
+ output.position = UnityObjectToClipPos(v.vertex);
+ return output;
+ }
+
+ float4 frag(v2f input) : COLOR {
+ return 0;
+ }
+ ENDCG
+ }
+
+ LOD 200
+
+ CGPROGRAM
+
+// Physically based Standard lighting model, and enable shadows on all light types
+#pragma surface surf Standard vertex:vert nolightmap alpha noforwardadd
+
+float _Alpha;
+sampler2D _Albedo;
+float4 _Albedo_ST;
+sampler2D _Surface;
+float4 _Surface_ST;
+
+struct Input {
+ float2 texcoord;
+};
+
+void vert(inout appdata_full v, out Input o) {
+ UNITY_INITIALIZE_OUTPUT(Input, o);
+ o.texcoord = v.texcoord.xy;
+}
+
+void surf (Input IN, inout SurfaceOutputStandard o) {
+ o.Albedo = tex2D(_Albedo, TRANSFORM_TEX(IN.texcoord, _Albedo)).rgb;
+ float4 surfaceParams = tex2D(_Surface, TRANSFORM_TEX(IN.texcoord, _Surface));
+ o.Metallic = surfaceParams.r;
+ o.Occlusion = surfaceParams.g;
+ o.Smoothness = surfaceParams.a;
+ o.Alpha = _Alpha;
+}
+
+#pragma only_renderers d3d11 gles3 gles
+
+ENDCG
+ }
+ FallBack "Diffuse"
+}
diff --git a/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderPBS.shader.meta b/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderPBS.shader.meta
new file mode 100644
index 0000000..d1cf3c0
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderPBS.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 5e52aa58207bbf24d8eb8ec969e9ae88
+timeCreated: 1525971190
+licenseType: Store
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderPBSV2.shader b/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderPBSV2.shader
new file mode 100644
index 0000000..8a2845c
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderPBSV2.shader
@@ -0,0 +1,39 @@
+Shader "OvrAvatar/AvatarSurfaceShaderPBSV2" {
+ Properties {
+ _AlbedoMultiplier ("Albedo Multiplier", Color) = (1,1,1,1)
+ _Albedo ("Albedo (RGB)", 2D) = "white" {}
+ _Metallicness("Metallicness", 2D) = "grey" {}
+ _GlossinessScale ("Glossiness Scale", Range(0,1)) = 0.5
+ }
+ SubShader {
+ Tags { "RenderType"="Opaque" }
+ LOD 200
+
+ CGPROGRAM
+ // Physically based Standard lighting model, and enable shadows on all light types
+ #pragma surface surf Standard fullforwardshadows
+
+ // Use shader model 3.0 target, to get nicer looking lighting
+ #pragma target 3.0
+
+ sampler2D _Albedo;
+ sampler2D _Metallicness;
+
+ struct Input {
+ float2 uv_Albedo;
+ };
+
+ float _GlossinessScale;
+ float4 _AlbedoMultiplier;
+
+ void surf (Input IN, inout SurfaceOutputStandard o) {
+ fixed4 c = tex2D (_Albedo, IN.uv_Albedo) * _AlbedoMultiplier;
+ o.Albedo = c.rgb;
+ o.Metallic = tex2D (_Metallicness, IN.uv_Albedo).r;
+ o.Smoothness = _GlossinessScale;
+ o.Alpha = 1.0;
+ }
+ ENDCG
+ }
+ FallBack "Diffuse"
+}
\ No newline at end of file
diff --git a/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderPBSV2.shader.meta b/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderPBSV2.shader.meta
new file mode 100644
index 0000000..dded93f
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderPBSV2.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 176faebcc612eb147900defeda2149cb
+timeCreated: 1525971187
+licenseType: Store
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderSelfOccluding.shader b/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderSelfOccluding.shader
new file mode 100644
index 0000000..54e8150
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderSelfOccluding.shader
@@ -0,0 +1,175 @@
+Shader "OvrAvatar/AvatarSurfaceShaderSelfOccluding" {
+ Properties{
+ // Global parameters
+ _Alpha("Alpha", Range(0.0, 1.0)) = 1.0
+ _DarkMultiplier("Dark Multiplier", Color) = (0.6, 0.6, 0.6, 1.0)
+ _BaseColor("Base Color", Color) = (0.0, 0.0, 0.0, 0.0)
+ _BaseMaskType("Base Mask Type", Int) = 0
+ _BaseMaskParameters("Base Mask Parameters", Vector) = (0, 0, 0, 0)
+ _BaseMaskAxis("Base Mask Axis", Vector) = (0, 1, 0, 0)
+ _AlphaMask("Alpha Mask", 2D) = "white" {}
+ _NormalMap("Normal Map", 2D) = "" {}
+ _ParallaxMap("Parallax Map", 2D) = "" {}
+ _RoughnessMap("Roughness Map", 2D) = "" {}
+
+ // Layer 0 parameters
+ _LayerSampleMode0("Layer Sample Mode 0", Int) = 0
+ _LayerBlendMode0("Layer Blend Mode 0", Int) = 0
+ _LayerMaskType0("Layer Mask Type 0", Int) = 0
+ _LayerColor0("Layer Color 0", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface0("Layer Surface 0", 2D) = "" {}
+ _LayerSampleParameters0("Layer Sample Parameters 0", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters0("Layer Mask Parameters 0", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis0("Layer Mask Axis 0", Vector) = (0, 1, 0, 0)
+
+ // Layer 1 parameters
+ _LayerSampleMode1("Layer Sample Mode 1", Int) = 0
+ _LayerBlendMode1("Layer Blend Mode 1", Int) = 0
+ _LayerMaskType1("Layer Mask Type 1", Int) = 0
+ _LayerColor1("Layer Color 1", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface1("Layer Surface 1", 2D) = "" {}
+ _LayerSampleParameters1("Layer Sample Parameters 1", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters1("Layer Mask Parameters 1", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis1("Layer Mask Axis 1", Vector) = (0, 1, 0, 0)
+
+ // Layer 2 parameters
+ _LayerSampleMode2("Layer Sample Mode 2", Int) = 0
+ _LayerBlendMode2("Layer Blend Mode 2", Int) = 0
+ _LayerMaskType2("Layer Mask Type 2", Int) = 0
+ _LayerColor2("Layer Color 2", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface2("Layer Surface 2", 2D) = "" {}
+ _LayerSampleParameters2("Layer Sample Parameters 2", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters2("Layer Mask Parameters 2", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis2("Layer Mask Axis 2", Vector) = (0, 1, 0, 0)
+
+ // Layer 3 parameters
+ _LayerSampleMode3("Layer Sample Mode 3", Int) = 0
+ _LayerBlendMode3("Layer Blend Mode 3", Int) = 0
+ _LayerMaskType3("Layer Mask Type 3", Int) = 0
+ _LayerColor3("Layer Color 3", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface3("Layer Surface 3", 2D) = "" {}
+ _LayerSampleParameters3("Layer Sample Parameters 3", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters3("Layer Mask Parameters 3", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis3("Layer Mask Axis 3", Vector) = (0, 1, 0, 0)
+
+ // Layer 4 parameters
+ _LayerSampleMode4("Layer Sample Mode 4", Int) = 0
+ _LayerBlendMode4("Layer Blend Mode 4", Int) = 0
+ _LayerMaskType4("Layer Mask Type 4", Int) = 0
+ _LayerColor4("Layer Color 4", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface4("Layer Surface 4", 2D) = "" {}
+ _LayerSampleParameters4("Layer Sample Parameters 4", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters4("Layer Mask Parameters 4", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis4("Layer Mask Axis 4", Vector) = (0, 1, 0, 0)
+
+ // Layer 5 parameters
+ _LayerSampleMode5("Layer Sample Mode 5", Int) = 0
+ _LayerBlendMode5("Layer Blend Mode 5", Int) = 0
+ _LayerMaskType5("Layer Mask Type 5", Int) = 0
+ _LayerColor5("Layer Color 5", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface5("Layer Surface 5", 2D) = "" {}
+ _LayerSampleParameters5("Layer Sample Parameters 5", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters5("Layer Mask Parameters 5", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis5("Layer Mask Axis 5", Vector) = (0, 1, 0, 0)
+
+ // Layer 6 parameters
+ _LayerSampleMode6("Layer Sample Mode 6", Int) = 0
+ _LayerBlendMode6("Layer Blend Mode 6", Int) = 0
+ _LayerMaskType6("Layer Mask Type 6", Int) = 0
+ _LayerColor6("Layer Color 6", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface6("Layer Surface 6", 2D) = "" {}
+ _LayerSampleParameters6("Layer Sample Parameters 6", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters6("Layer Mask Parameters 6", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis6("Layer Mask Axis 6", Vector) = (0, 1, 0, 0)
+
+ // Layer 7 parameters
+ _LayerSampleMode7("Layer Sample Mode 7", Int) = 0
+ _LayerBlendMode7("Layer Blend Mode 7", Int) = 0
+ _LayerMaskType7("Layer Mask Type 7", Int) = 0
+ _LayerColor7("Layer Color 7", Color) = (1.0, 1.0, 1.0, 1.0)
+ _LayerSurface7("Layer Surface 7", 2D) = "" {}
+ _LayerSampleParameters7("Layer Sample Parameters 7", Vector) = (0, 0, 0, 0)
+ _LayerMaskParameters7("Layer Mask Parameters 7", Vector) = (0, 0, 0, 0)
+ _LayerMaskAxis7("Layer Mask Axis 7", Vector) = (0, 1, 0, 0)
+ }
+
+ SubShader
+ {
+ Tags
+ {
+ "Queue" = "Transparent"
+ "RenderType" = "Transparent"
+ }
+
+ Pass
+ {
+ ZWrite On
+ Cull Off
+ ColorMask 0
+ Offset 1, 1
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma target 3.0
+ #include "UnityCG.cginc"
+
+ struct v2f
+ {
+ float4 position : SV_POSITION;
+ };
+
+ v2f vert(appdata_full v)
+ {
+ // Output
+ v2f output;
+ output.position = UnityObjectToClipPos(v.vertex);
+ return output;
+ }
+
+ float4 frag(v2f input) : COLOR
+ {
+ return 0;
+ }
+
+ ENDCG
+ }
+
+ Blend SrcAlpha OneMinusSrcAlpha
+ ZWrite Off
+ LOD 200
+
+ Pass
+ {
+ Name "FORWARD"
+ Tags
+ {
+ "LightMode" = "ForwardBase"
+ }
+
+ CGPROGRAM
+ #pragma only_renderers d3d11 gles3 gles
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma target 3.0
+ #pragma multi_compile PROJECTOR_OFF PROJECTOR_ON
+ #pragma multi_compile NORMAL_MAP_OFF NORMAL_MAP_ON
+ #pragma multi_compile PARALLAX_OFF PARALLAX_ON
+ #pragma multi_compile ROUGHNESS_OFF ROUGHNESS_ON
+ #pragma multi_compile VERTALPHA_OFF VERTALPHA_ON
+ #pragma multi_compile LAYERS_1 LAYERS_2 LAYERS_3 LAYERS_4 LAYERS_5 LAYERS_6 LAYERS_7 LAYERS_8
+
+ #include "Assets/Oculus/Avatar/Resources/Materials/AvatarMaterialStateShader.cginc"
+
+ float4 frag(VertexOutput IN) : SV_Target
+ {
+ return ComputeSurface(IN);
+ }
+
+ ENDCG
+ }
+ }
+
+ FallBack "Diffuse"
+ CustomEditor "AvatarMaterialEditor"
+}
diff --git a/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderSelfOccluding.shader.meta b/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderSelfOccluding.shader.meta
new file mode 100644
index 0000000..3df41f3
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderSelfOccluding.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 69f342b79d37541489919a19cfd8a924
+timeCreated: 1525971190
+licenseType: Store
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Resources/Materials/Version1.5.meta b/Assets/Oculus/Avatar/Resources/Materials/Version1.5.meta
new file mode 100644
index 0000000..12db4fc
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/Version1.5.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: ced8ef067736a0b468cde573cc63e3ec
+folderAsset: yes
+timeCreated: 1525971173
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_CombinedMesh.shader b/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_CombinedMesh.shader
new file mode 100644
index 0000000..7417def
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_CombinedMesh.shader
@@ -0,0 +1,217 @@
+//
+// *** OvrAvatar Mobile Combined Mesh shader ***
+// *** Texture array approach for rendering a combined mesh avatar ***
+//
+// This is a Unity vertex-fragnment shader implementation for our 1.5 skin shaded avatar look.
+// The benefit of using this version is performance as it bypasses the PBR lighting model and
+// so is generally recommended for use on mobile.
+//
+// This is the texture array version of the shader, which will draw all pre-combined
+// components in one draw call. This is coupled with OvrAvatarMaterialManager to populate the
+// shader properties.
+//
+// Shader keywords:
+// - SECONDARY_LIGHT_ON SECONDARY_LIGHT_OFF
+// Enable SECONDARY_LIGHT_ON for a second "light" as expressed by _SecondaryLightDirection
+// and _SecondaryLightColor to influence the standard rim effect. This is designed for use in video watching
+// experiences to sample the screen color and apply this to the rim term.
+// - NO_BACKLIGHT_ON NO_BACKLIGHT_OFF
+// This effect is active by default: NO_BACKLIGHT_OFF is the default and enables the effect. Enable NO_BACKLIGHT_ON
+// to disable illumination from the rear of the main light direction. This mobile shader supports one directional
+// light. This can cause the un-illuminated side of the avatar to lose definition.
+//
+// Notes:
+// - The primary light in your scene will be used to calculate lighting.
+// - We don't have a mouth bone, but the vertex shader will animate the vertices around the mouth
+// area according to the _Voice value. This should be set according to local microphone value
+// range between 0-1.
+
+Shader "OvrAvatar/Avatar_Mobile_CombinedMesh"
+{
+ Properties
+ {
+ _MainTex("Main Texture Array", 2DArray) = "white" {}
+ _NormalMap("Normal Map Array", 2DArray) = "bump" {}
+ _RoughnessMap("Roughness Map Array", 2DArray) = "black" {}
+
+ _Dimmer("Dimmer", Range(0.0,1.0)) = 1.0
+ _Alpha("Alpha", Range(0.0,1.0)) = 1.0
+
+ _Voice("Voice", Range(0.0,1.0)) = 1.0
+ [HideInInspector] _MouthPosition("Mouth position", Vector) = (0,0,0,1)
+ [HideInInspector] _MouthDirection("Mouth direction", Vector) = (0,0,0,1)
+ [HideInInspector] _MouthEffectDistance("Mouth Effect Distance", Float) = 0.03
+ [HideInInspector] _MouthEffectScale("Mouth Effect Scaler", Float) = 1
+
+ // Index into the texture array needs an offset for precision
+ _Slices("Texture Array Slices", int) = 4.97
+ }
+
+ SubShader
+ {
+ Pass
+ {
+ Tags
+ {
+ "LightMode" = "ForwardBase" "Queue" = "Transparent" "RenderType" = "Transparent" "IgnoreProjector" = "True"
+ }
+ LOD 100
+ ZWrite On
+ ZTest LEqual
+ Cull Back
+ ColorMask RGB
+ Blend SrcAlpha OneMinusSrcAlpha
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma target 3.5
+ #pragma fragmentoption ARB_precision_hint_fastest
+ #pragma multi_compile SECONDARY_LIGHT_OFF SECONDARY_LIGHT_ON
+ #pragma multi_compile BACKLIGHT_OFF BACKLIGHT_ON
+ #include "UnityCG.cginc"
+ #include "UnityLightingCommon.cginc"
+
+ UNITY_DECLARE_TEX2DARRAY(_MainTex);
+ UNITY_DECLARE_TEX2DARRAY(_NormalMap);
+ uniform float4 _NormalMap_ST;
+ UNITY_DECLARE_TEX2DARRAY(_RoughnessMap);
+
+ uniform int _Slices;
+
+ uniform float4 _BaseColor[5];
+ uniform float _DiffuseIntensity[5];
+ uniform float _RimIntensity[5];
+ uniform float _BacklightIntensity[5];
+ uniform float _ReflectionIntensity[5];
+
+ uniform float3 _SecondaryLightDirection;
+ uniform float4 _SecondaryLightColor;
+
+ uniform float _Dimmer;
+ uniform float _Alpha;
+
+ uniform float _Voice;
+ uniform float4 _MouthPosition;
+ uniform float4 _MouthDirection;
+ uniform float _MouthEffectDistance;
+ uniform float _MouthEffectScale;
+
+ static const fixed MOUTH_ZSCALE = 0.5f;
+ static const fixed MOUTH_DROPOFF = 0.01f;
+
+ struct appdata
+ {
+ float4 vertex: POSITION;
+ float3 normal: NORMAL;
+ float4 tangent: TANGENT;
+ float2 texcoord: TEXCOORD0;
+ float4 vertexColor : COLOR0;
+ };
+
+ struct v2f
+ {
+ float4 pos : SV_POSITION;
+ float3 uv : TEXCOORD0;
+ float4 posWorld: TEXCOORD1;
+ float3 normalDir: TEXCOORD2;
+ float3 tangentDir: TEXCOORD3;
+ float3 bitangentDir: TEXCOORD4;
+ };
+
+ v2f vert(appdata v)
+ {
+ v2f o;
+
+ // Mouth vertex animation with voip
+ float4 worldVert = mul(unity_ObjectToWorld, v.vertex);;
+ float3 delta = _MouthPosition - worldVert;
+ delta.z *= MOUTH_ZSCALE;
+ float dist = length(delta);
+ float scaledMouthDropoff = _MouthEffectScale * MOUTH_DROPOFF;
+ float scaledMouthEffect = _MouthEffectScale * _MouthEffectDistance;
+ float displacement = _Voice * smoothstep(scaledMouthEffect + scaledMouthDropoff, scaledMouthEffect, dist);
+ worldVert.xyz -= _MouthDirection * displacement;
+ v.vertex = mul(unity_WorldToObject, worldVert);
+
+ // Calculate tangents for normal mapping
+ o.normalDir = normalize(UnityObjectToWorldNormal(v.normal));
+ o.tangentDir = normalize(mul(unity_ObjectToWorld, half4(v.tangent.xyz, 0.0)).xyz);
+ o.bitangentDir = normalize(cross(o.normalDir, o.tangentDir) * v.tangent.w);
+
+ o.posWorld = worldVert;
+ o.pos = UnityObjectToClipPos(v.vertex);
+ o.uv.xy = v.texcoord;
+ o.uv.z = v.vertexColor.x * _Slices;
+ return o;
+ }
+
+ fixed4 frag(v2f i) : COLOR
+ {
+ // Light direction
+ float3 lightDirection = _WorldSpaceLightPos0.xyz;
+
+ // Unpack normal map
+ float3 transformedNormalUV = i.uv;
+ transformedNormalUV.xy = float2(TRANSFORM_TEX(i.uv.xy, _NormalMap));
+ float3 normalMap = UNITY_SAMPLE_TEX2DARRAY(_NormalMap, transformedNormalUV).rgb * 2 - 1;
+
+ // Calculate normal
+ float3x3 tangentTransform = float3x3(i.tangentDir, i.bitangentDir, i.normalDir);
+ float3 normalDirection = normalize(mul(normalMap.rgb, tangentTransform));
+ float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - i.posWorld.xyz);
+
+ // Apply view, normal, and lighting dependent terms
+ float VdotN = saturate(dot(viewDirection, normalDirection));
+ float NdotL = saturate(dot(normalDirection, lightDirection));
+
+ float LightColorNdotL = NdotL * _LightColor0;
+
+ // Sample the default reflection cubemap using the reflection vector
+ float3 worldReflection = reflect(-viewDirection, normalDirection);
+ half4 skyData = UNITY_SAMPLE_TEXCUBE(unity_SpecCube0, worldReflection);
+ // Decode cubemap data into actual color
+ half3 reflectionColor = DecodeHDR(skyData, unity_SpecCube0_HDR);
+
+ // Calculate color for each component
+ float4 col;
+ // Get index into texture array
+ int componentIndex = floor(i.uv.z + 0.5);
+ // Diffuse texture sample
+ col = UNITY_SAMPLE_TEX2DARRAY(_MainTex, i.uv);
+ // Multiply in color tint (don't need to deal with gamma/linear here as conversion already done)
+ col.rgb *= _BaseColor[componentIndex];
+ // Main light
+ col.rgb += _DiffuseIntensity[componentIndex] * LightColorNdotL;
+ #ifdef NO_BACKLIGHT_ON
+ //NO_BACKLIGHT_ON disables the rear illumination
+ #else
+ // Illuminate from behind
+ float3 reverseLightDirection = lightDirection * -1;
+ float NdotInvL = saturate(dot(normalDirection, normalize(reverseLightDirection)));
+ col.rgb += (_DiffuseIntensity[componentIndex] * _BacklightIntensity[componentIndex]) * NdotInvL * _LightColor0;
+ #endif
+ // Rim term
+ #ifdef SECONDARY_LIGHT_ON
+ // Secondary light proxy (direction and color) passed into the rim term
+ NdotL = saturate(dot(normalDirection, _SecondaryLightDirection));
+ col.rgb += pow(1.0 - VdotN, _RimIntensity[componentIndex]) * NdotL * _SecondaryLightColor;
+ #else
+ col.rgb += pow(1.0 - VdotN, _RimIntensity[componentIndex]) * LightColorNdotL;
+ #endif
+ // Reflection
+ col.rgb += reflectionColor * UNITY_SAMPLE_TEX2DARRAY(_RoughnessMap, i.uv).a * _ReflectionIntensity[componentIndex];
+
+ // Global dimmer
+ col.rgb *= _Dimmer;
+ // Global alpha
+ col.a *= _Alpha;
+ #if !defined(UNITY_COLORSPACE_GAMMA)
+ col.rgb = GammaToLinearSpace(col.rgb);
+ #endif
+ // Return clamped final color
+ return saturate(col);
+ }
+ ENDCG
+ }
+ }
+}
diff --git a/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_CombinedMesh.shader.meta b/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_CombinedMesh.shader.meta
new file mode 100644
index 0000000..179d4db
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_CombinedMesh.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 37d2b8298f61cd2469465fc36108675d
+timeCreated: 1526311739
+licenseType: Store
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_Loader.shader b/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_Loader.shader
new file mode 100644
index 0000000..e4a5dd9
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_Loader.shader
@@ -0,0 +1,165 @@
+//
+// *** OvrAvatar Mobile Single Component Loading shader ***
+//
+// Cut-down single component version of the avatar shader to be used during loading.
+// See main mobile shader for implementation notes.
+
+Shader "OvrAvatar/Avatar_Mobile_Loader"
+{
+ Properties
+ {
+ _NormalMap("Normal Map", 2D) = "bump" {}
+
+ _BaseColor("Color Tint", Color) = (1.0,1.0,1.0,1.0)
+ _Dimmer("Dimmer", Range(0.0,1.0)) = 1.0
+ _LoadingDimmer("Loading Dimmer", Range(0.0,1.0)) = 1.0
+ _Alpha("Alpha", Range(0.0,1.0)) = 1.0
+
+ _DiffuseIntensity("Diffuse Intensity", Range(0.0,1.0)) = 0.3
+ _RimIntensity("Rim Intensity", Range(0.0,10.0)) = 5.0
+ _BacklightIntensity("Backlight Intensity", Range(0.0,1.0)) = 1.0
+
+ _Voice("Voice", Range(0.0,1.0)) = 0.0
+ [HideInInspector] _MouthPosition("Mouth position", Vector) = (0,0,0,1)
+ [HideInInspector] _MouthDirection("Mouth direction", Vector) = (0,0,0,1)
+ [HideInInspector] _MouthEffectDistance("Mouth Effect Distance", Float) = 0.03
+ [HideInInspector] _MouthEffectScale("Mouth Effect Scaler", Float) = 1
+ }
+
+ SubShader
+ {
+ Pass
+ {
+ Tags
+ {
+ "LightMode" = "ForwardBase" "Queue" = "Transparent" "RenderType" = "Transparent" "IgnoreProjector" = "True"
+ }
+ LOD 100
+ ZWrite On
+ ZTest LEqual
+ Cull Back
+ ColorMask RGB
+ Blend SrcAlpha OneMinusSrcAlpha
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma target 3.5
+ #pragma fragmentoption ARB_precision_hint_fastest
+ #pragma multi_compile NO_BACKLIGHT_OFF NO_BACKLIGHT_ON
+ #include "UnityCG.cginc"
+ #include "UnityLightingCommon.cginc"
+
+ uniform sampler2D _NormalMap;
+ uniform float4 _NormalMap_ST;
+
+ uniform float4 _BaseColor;
+ uniform float _Dimmer;
+ uniform float _LoadingDimmer;
+ uniform float _Alpha;
+
+ uniform float _RimIntensity;
+ uniform float _DiffuseIntensity;
+ uniform float _BacklightIntensity;
+
+ uniform float _Voice;
+ uniform float4 _MouthPosition;
+ uniform float4 _MouthDirection;
+ uniform float _MouthEffectDistance;
+ uniform float _MouthEffectScale;
+
+ static const fixed MOUTH_ZSCALE = 0.5f;
+ static const fixed MOUTH_DROPOFF = 0.01f;
+
+ struct appdata
+ {
+ float4 vertex: POSITION;
+ float3 normal: NORMAL;
+ float4 tangent: TANGENT;
+ float4 uv: TEXCOORD0;
+ };
+
+ struct v2f
+ {
+ float4 pos : SV_POSITION;
+ float2 uv : TEXCOORD0;
+ float4 posWorld: TEXCOORD1;
+ float3 normalDir: TEXCOORD2;
+ float3 tangentDir: TEXCOORD3;
+ float3 bitangentDir: TEXCOORD4;
+ };
+
+ v2f vert(appdata v)
+ {
+ v2f o;
+
+ // Mouth vertex animation with voip
+ float4 worldVert = mul(unity_ObjectToWorld, v.vertex);;
+ float3 delta = _MouthPosition - worldVert;
+ delta.z *= MOUTH_ZSCALE;
+ float dist = length(delta);
+ float scaledMouthDropoff = _MouthEffectScale * MOUTH_DROPOFF;
+ float scaledMouthEffect = _MouthEffectScale * _MouthEffectDistance;
+ float displacement = _Voice * smoothstep(scaledMouthEffect + scaledMouthDropoff, scaledMouthEffect, dist);
+ worldVert.xyz -= _MouthDirection * displacement;
+ v.vertex = mul(unity_WorldToObject, worldVert);
+
+ // Calculate tangents for normal mapping
+ o.normalDir = normalize(UnityObjectToWorldNormal(v.normal));
+ o.tangentDir = normalize(mul(unity_ObjectToWorld, half4(v.tangent.xyz, 0.0)).xyz);
+ o.bitangentDir = normalize(cross(o.normalDir, o.tangentDir) * v.tangent.w);
+
+ o.posWorld = worldVert;
+ o.pos = UnityObjectToClipPos(v.vertex);
+ o.uv = v.uv;
+ return o;
+ }
+
+ fixed4 frag(v2f i) : COLOR
+ {
+ // Light direction
+ float3 lightDirection = _WorldSpaceLightPos0.xyz;
+
+ // Calculate normal
+ float3 normalMap = UnpackNormal(tex2D(_NormalMap, TRANSFORM_TEX(i.uv, _NormalMap)));
+ float3x3 tangentTransform = float3x3(i.tangentDir, i.bitangentDir, i.normalDir);
+ float3 normalDirection = normalize(mul(normalMap.rgb, tangentTransform));
+ float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - i.posWorld.xyz);
+
+ // Apply view, normal, and lighting dependent terms
+ float VdotN = saturate(dot(viewDirection, normalDirection));
+ float NdotL = saturate(dot(normalDirection, lightDirection));
+ float LightColorNdotL = NdotL * _LightColor0;
+
+ // Calculate color
+ float4 col;
+#if !defined(UNITY_COLORSPACE_GAMMA)
+ _BaseColor.rgb = LinearToGammaSpace(_BaseColor.rgb);
+#endif
+ // Multiply in color tint
+ col.rgb = _BaseColor;
+ // Main light
+ col.rgb += _DiffuseIntensity * NdotL;
+#ifdef NO_BACKLIGHT_ON
+ //NO_BACKLIGHT_ON disables the rear illumination
+#else
+ // Illuminate main light from behind of NO_BACKLIGHT_ON is disabled
+ float3 reverseLightDirection = lightDirection * -1;
+ float NdotInvL = saturate(dot(normalDirection, normalize(reverseLightDirection)));
+ col.rgb += (_DiffuseIntensity * _BacklightIntensity) * NdotInvL *_LightColor0;
+#endif
+ // Rim term
+ col.rgb += pow(1.0 - VdotN, _RimIntensity) * LightColorNdotL;
+ // Global dimmer
+ col.rgb *= lerp(_Dimmer, _LoadingDimmer, step(_LoadingDimmer, _Dimmer));
+ // Global alpha
+ col.a = _Alpha;
+#if !defined(UNITY_COLORSPACE_GAMMA)
+ col.rgb = GammaToLinearSpace(col.rgb);
+#endif
+ // Return clamped final color
+ return saturate(col);
+ }
+ ENDCG
+ }
+ }
+}
diff --git a/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_Loader.shader.meta b/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_Loader.shader.meta
new file mode 100644
index 0000000..0304e1d
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_Loader.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 822f5e641dc5dd54ca9555b727b3277f
+timeCreated: 1526311739
+licenseType: Store
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_SingleComponent.shader b/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_SingleComponent.shader
new file mode 100644
index 0000000..9956cd7
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_SingleComponent.shader
@@ -0,0 +1,204 @@
+// *** OvrAvatar Mobile Single Component shader ***
+//
+// This is a Unity vertex-fragnment shader implementation for our 1.5 skin shaded avatar look.
+// The benefit of using this version is performance as it bypasses the PBR lighting model and
+// so is generally recommended for use on mobile.
+//
+// Shader keywords:
+// - SECONDARY_LIGHT_ON SECONDARY_LIGHT_OFF
+// Enable SECONDARY_LIGHT_ON for a second "light" as expressed by _SecondaryLightDirection
+// and _SecondaryLightColor to influence the standard rim effect. This is designed for use in video watching
+// experiences to sample the screen color and apply this to the rim term.
+// - NO_BACKLIGHT_ON NO_BACKLIGHT_OFF
+// This effect is active by default: NO_BACKLIGHT_OFF is the default and enables the effect. Enable NO_BACKLIGHT_ON
+// to disable illumination from the rear of the main light direction. This mobile shader supports one directional
+// light. This can cause the un-illuminated side of the avatar to lose definition.
+// Notes:
+// - The primary light in your scene will be used to calculate lighting.
+// - We don't have a mouth bone, but the vertex shader will animate the vertices around the mouth
+// area according to the _Voice value. This should be set according to local microphone value
+// range between 0-1.
+
+Shader "OvrAvatar/Avatar_Mobile_SingleComponent"
+{
+ Properties
+ {
+ _MainTex("Main Texture", 2D) = "white" {}
+ _NormalMap("Normal Map", 2D) = "bump" {}
+ _RoughnessMap("Roughness Map", 2D) = "black" {}
+
+ _BaseColor("Color Tint", Color) = (1.0,1.0,1.0,1.0)
+ _Dimmer("Dimmer", Range(0.0,1.0)) = 1.0
+ _Alpha("Alpha", Range(0.0,1.0)) = 1.0
+
+ _DiffuseIntensity("Diffuse Intensity", Range(0.0,1.0)) = 0.3
+ _RimIntensity("Rim Intensity", Range(0.0,10.0)) = 5.0
+ _BacklightIntensity("Backlight Intensity", Range(0.0,1.0)) = 1.0
+ _ReflectionIntensity("Reflection Intensity", Range(0.0,1.0)) = 0.0
+
+ _Voice("Voice", Range(0.0,1.0)) = 0.0
+ [HideInInspector] _MouthPosition("Mouth position", Vector) = (0,0,0,1)
+ [HideInInspector] _MouthDirection("Mouth direction", Vector) = (0,0,0,1)
+ [HideInInspector] _MouthEffectDistance("Mouth Effect Distance", Float) = 0.03
+ [HideInInspector] _MouthEffectScale("Mouth Effect Scaler", Float) = 1
+ }
+
+ SubShader
+ {
+ Pass
+ {
+ Tags
+ {
+ "LightMode" = "ForwardBase" "Queue" = "Transparent" "RenderType" = "Transparent" "IgnoreProjector" = "True"
+ }
+ LOD 100
+ ZWrite On
+ ZTest LEqual
+ Cull Back
+ ColorMask RGB
+ Blend SrcAlpha OneMinusSrcAlpha
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma target 3.5
+ #pragma fragmentoption ARB_precision_hint_fastest
+ #pragma multi_compile SECONDARY_LIGHT_OFF SECONDARY_LIGHT_ON
+ #pragma multi_compile NO_BACKLIGHT_OFF NO_BACKLIGHT_ON
+ #include "UnityCG.cginc"
+ #include "UnityLightingCommon.cginc"
+
+ uniform sampler2D _MainTex;
+ uniform sampler2D _NormalMap;
+ uniform float4 _NormalMap_ST;
+ uniform sampler2D _RoughnessMap;
+ uniform float4 _BaseColor;
+ uniform float _DiffuseIntensity;
+ uniform float _RimIntensity;
+ uniform float _BacklightIntensity;
+ uniform float _ReflectionIntensity;
+
+ uniform float3 _SecondaryLightDirection;
+ uniform float4 _SecondaryLightColor;
+
+ uniform float _Dimmer;
+ uniform float _Alpha;
+
+ uniform float _Voice;
+ uniform float4 _MouthPosition;
+ uniform float4 _MouthDirection;
+ uniform float _MouthEffectDistance;
+ uniform float _MouthEffectScale;
+
+ static const fixed MOUTH_ZSCALE = 0.5f;
+ static const fixed MOUTH_DROPOFF = 0.01f;
+
+ struct appdata
+ {
+ float4 vertex: POSITION;
+ float3 normal: NORMAL;
+ float4 tangent: TANGENT;
+ float4 uv: TEXCOORD0;
+ };
+
+ struct v2f
+ {
+ float4 pos : SV_POSITION;
+ float2 uv : TEXCOORD0;
+ float4 posWorld: TEXCOORD1;
+ float3 normalDir: TEXCOORD2;
+ float3 tangentDir: TEXCOORD3;
+ float3 bitangentDir: TEXCOORD4;
+ };
+
+ v2f vert(appdata v)
+ {
+ v2f o;
+
+ // Mouth vertex animation with voip
+ float4 worldVert = mul(unity_ObjectToWorld, v.vertex);;
+ float3 delta = _MouthPosition - worldVert;
+ delta.z *= MOUTH_ZSCALE;
+ float dist = length(delta);
+ float scaledMouthDropoff = _MouthEffectScale * MOUTH_DROPOFF;
+ float scaledMouthEffect = _MouthEffectScale * _MouthEffectDistance;
+ float displacement = _Voice * smoothstep(scaledMouthEffect + scaledMouthDropoff, scaledMouthEffect, dist);
+ worldVert.xyz -= _MouthDirection * displacement;
+ v.vertex = mul(unity_WorldToObject, worldVert);
+
+ // Calculate tangents for normal mapping
+ o.normalDir = normalize(UnityObjectToWorldNormal(v.normal));
+ o.tangentDir = normalize(mul(unity_ObjectToWorld, half4(v.tangent.xyz, 0.0)).xyz);
+ o.bitangentDir = normalize(cross(o.normalDir, o.tangentDir) * v.tangent.w);
+
+ o.posWorld = worldVert;
+ o.pos = UnityObjectToClipPos(v.vertex);
+ o.uv = v.uv;
+ return o;
+ }
+
+ fixed4 frag(v2f i) : COLOR
+ {
+ // Light directions
+ float3 lightDirection = _WorldSpaceLightPos0.xyz;
+
+ // Calculate normal
+ float3 normalMap = tex2D(_NormalMap, TRANSFORM_TEX(i.uv, _NormalMap)) * 2 - 1;
+ float3x3 tangentTransform = float3x3(i.tangentDir, i.bitangentDir, i.normalDir);
+ float3 normalDirection = normalize(mul(normalMap.rgb, tangentTransform));
+ float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - i.posWorld.xyz);
+
+ // Apply view, normal, and lighting dependent terms
+ float VdotN = saturate(dot(viewDirection, normalDirection));
+ float NdotL = saturate(dot(normalDirection, lightDirection));
+ float LightColorNdotL = NdotL * _LightColor0;
+
+ // Sample the default reflection cubemap using the reflection vector
+ float3 worldReflection = reflect(-viewDirection, normalDirection);
+ half4 skyData = UNITY_SAMPLE_TEXCUBE(unity_SpecCube0, worldReflection);
+ // Decode cubemap data into actual color
+ half3 reflectionColor = DecodeHDR(skyData, unity_SpecCube0_HDR);
+
+ // Calculate color
+ float4 col;
+ // Diffuse texture sample
+ col = tex2D(_MainTex, i.uv);
+ #if !defined(UNITY_COLORSPACE_GAMMA)
+ _BaseColor.rgb = LinearToGammaSpace(_BaseColor.rgb);
+ #endif
+ // Multiply in color tint
+ col.rgb *= _BaseColor;
+ // Main light
+ col.rgb += _DiffuseIntensity * LightColorNdotL;
+ #ifdef NO_BACKLIGHT_ON
+ //NO_BACKLIGHT_ON disables the rear illumination
+ #else
+ // Illuminate main light from behind of NO_BACKLIGHT_ON is disabled
+ float3 reverseLightDirection = lightDirection * -1;
+ float NdotInvL = saturate(dot(normalDirection, normalize(reverseLightDirection)));
+ col.rgb += (_DiffuseIntensity * _BacklightIntensity) * NdotInvL *_LightColor0;
+ #endif
+ // Rim term
+ #ifdef SECONDARY_LIGHT_ON
+ // Secondary light proxy (direction and color) passed into the rim term
+ NdotL = saturate(dot(normalDirection, _SecondaryLightDirection));
+ col.rgb += pow(1.0 - VdotN, _RimIntensity) * NdotL * _SecondaryLightColor;
+ #else
+ col.rgb += pow(1.0 - VdotN, _RimIntensity) * LightColorNdotL;
+ #endif
+ // Reflection
+ col.rgb += reflectionColor * tex2D(_RoughnessMap, i.uv).a * _ReflectionIntensity;
+
+ // Global dimmer
+ col.rgb *= _Dimmer;
+ // Global alpha
+ col.a *= _Alpha;
+ #if !defined(UNITY_COLORSPACE_GAMMA)
+ col.rgb = GammaToLinearSpace(col.rgb);
+ #endif
+ // Return clamped final color
+ return saturate(col);
+ }
+ ENDCG
+ }
+ }
+}
diff --git a/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_SingleComponent.shader.meta b/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_SingleComponent.shader.meta
new file mode 100644
index 0000000..b39d8e8
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_SingleComponent.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: c26fc51e445dcfd4db09305d861dc11c
+timeCreated: 1526311739
+licenseType: Store
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_PC_SingleComponent.shader b/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_PC_SingleComponent.shader
new file mode 100644
index 0000000..6d9bb6f
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_PC_SingleComponent.shader
@@ -0,0 +1,108 @@
+//
+// OvrAvatar PC single component shader
+//
+// This is a Unity Surface shader implementation for our 1.5 skin shaded avatar look.
+// The benefit of using this version is that it uses the full Unity PBR lighting under the hood.
+// The Mobile shader is strongly recommended for use on mobile platforms for performance.
+//
+// Notes:
+// - Use Mobile shader if you need mouth vertex movement.
+
+Shader "OvrAvatar/Avatar_PC_SingleComponent"
+{
+ Properties
+ {
+ [NoScaleOffset] _MainTex("Color (RGB)", 2D) = "white" {}
+ [NoScaleOffset] _NormalMap("Normal Map", 2D) = "bump" {}
+ [NoScaleOffset] _RoughnessMap("Roughness Map", 2D) = "black" {}
+
+ _BaseColor("Color Tint", Color) = (0.95,0.77,0.63)
+ _Dimmer("Dimmer", Range(0.0,1.0)) = 1.0
+ _Alpha("Alpha", Range(0.0,1.0)) = 1.0
+
+ _DiffuseIntensity("Diffuse Intensity", Range(0.0,1.0)) = 0.3
+ _RimIntensity("Rim Intensity", Range(0.0,10.0)) = 5.0
+ }
+ SubShader
+ {
+ Tags{ "Queue" = "Transparent" "RenderType" = "Transparent" }
+ LOD 100
+ Blend SrcAlpha OneMinusSrcAlpha
+
+ // Render the back facing parts of the object then set on backface culling.
+ // This fixes broken faces with convex meshes when using the alpha path.
+ Pass
+ {
+ Color(0,0,0,0)
+ }
+
+ CGPROGRAM
+#pragma surface surf Standard alpha:fade
+#pragma target 3.0
+#pragma fragmentoption ARB_precision_hint_fastest
+ // Set this shader keyword if you are using Linear color space
+#pragma multi_compile COLORSPACE_LINEAR_OFF COLORSPACE_LINEAR_ON
+ // (Optional) Set this shader keyword if your scene only has one light
+#pragma multi_compile SINGLE_LIGHT_OFF SINGLE_LIGHT_ON
+#include "UnityCG.cginc"
+ sampler2D _MainTex;
+ sampler2D _NormalMap;
+ sampler2D _RoughnessMap;
+
+ float4 _BaseColor;
+ float _Dimmer;
+ float _Alpha;
+
+ float _DiffuseIntensity;
+ float _RimIntensity;
+
+ struct Input
+ {
+ float2 uv_MainTex;
+ float2 uv_NormalMap;
+ float2 uv_RoughnessMap;
+ float3 viewDir;
+ float3 worldNormal; INTERNAL_DATA
+ };
+
+ void surf(Input IN, inout SurfaceOutputStandard o)
+ {
+ // Unpack normal map
+ o.Normal = tex2D(_NormalMap, IN.uv_NormalMap) * 2 - 1;
+
+ // Diffuse texture sample
+ float4 col = tex2D(_MainTex, IN.uv_MainTex);
+
+ // Convert _BaseColor to gamma color space if we are in linear
+ // Albedo texture is already in correct color space
+ #if !defined(UNITY_COLORSPACE_GAMMA)
+ _BaseColor.rgb = LinearToGammaSpace(_BaseColor.rgb);
+ #endif
+ // Adjust color tint with NdotL
+ float NdotL = saturate(dot(WorldNormalVector(IN, o.Normal), _WorldSpaceLightPos0.xyz));
+ _BaseColor.rgb += _DiffuseIntensity * NdotL;
+ // Multiply in color tint
+ o.Albedo = col.rgb * _BaseColor;
+ // Rim term
+ float VdotN = saturate(dot(normalize(IN.viewDir), o.Normal));
+ o.Albedo += pow(1.0 - VdotN, _RimIntensity) * NdotL * _LightColor0;
+
+ // Sample roughness map and set smoothness and metallic
+ float4 roughnessSample = tex2D(_RoughnessMap, IN.uv_RoughnessMap);
+ o.Smoothness = roughnessSample.a;
+ o.Metallic = roughnessSample.r;
+
+ // Global dimmer
+ o.Albedo *= _Dimmer;
+ // Global alpha
+ o.Alpha = col.a * _Alpha;
+
+
+ // Convert back to linear color space if we are in linear
+ #if !defined(UNITY_COLORSPACE_GAMMA)
+ o.Albedo = GammaToLinearSpace(o.Albedo);
+ #endif
+ }
+ ENDCG
+ }
+}
\ No newline at end of file
diff --git a/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_PC_SingleComponent.shader.meta b/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_PC_SingleComponent.shader.meta
new file mode 100644
index 0000000..030e684
--- /dev/null
+++ b/Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_PC_SingleComponent.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 36b8b481cf607814a8cec318f0148d63
+timeCreated: 1525971189
+licenseType: Store
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples.meta b/Assets/Oculus/Avatar/Samples.meta
new file mode 100644
index 0000000..408139d
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: b18c7ae976868a4499e2dbd7f60e92a4
+folderAsset: yes
+timeCreated: 1467313717
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/Controllers.meta b/Assets/Oculus/Avatar/Samples/Controllers.meta
new file mode 100644
index 0000000..3ba3824
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/Controllers.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 2856d681f3672e641a2e57df9676108c
+folderAsset: yes
+timeCreated: 1468456735
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/Controllers/Controllers.unity b/Assets/Oculus/Avatar/Samples/Controllers/Controllers.unity
new file mode 100644
index 0000000..c0f157b
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/Controllers/Controllers.unity
@@ -0,0 +1,1194 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 7
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 7
+ m_GIWorkflowMode: 0
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_TemporalCoherenceThreshold: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 1
+ m_LightmapEditorSettings:
+ serializedVersion: 4
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_TextureWidth: 1024
+ m_TextureHeight: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 0
+ m_CompAOExponentDirect: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_DirectLightInLightProbes: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 1024
+ m_ReflectionCompression: 2
+ m_LightingDataAsset: {fileID: 0}
+ m_RuntimeCPUUsage: 25
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ accuratePlacement: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &30936213
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 30936217}
+ - component: {fileID: 30936216}
+ - component: {fileID: 30936215}
+ - component: {fileID: 30936214}
+ m_Layer: 0
+ m_Name: LocalAvatar
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &30936214
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11441414, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ m_GameObject: {fileID: 30936213}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: ac27124318cf8e84aa7350c2ac1cdb80, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Mode: 0
+--- !u!82 &30936215
+AudioSource:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 8254050, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ m_GameObject: {fileID: 30936213}
+ m_Enabled: 1
+ serializedVersion: 4
+ OutputAudioMixerGroup: {fileID: 0}
+ m_audioClip: {fileID: 0}
+ m_PlayOnAwake: 1
+ m_Volume: 1
+ m_Pitch: 1
+ Loop: 0
+ Mute: 0
+ Spatialize: 0
+ SpatializePostEffects: 0
+ Priority: 128
+ DopplerLevel: 1
+ MinDistance: 1
+ MaxDistance: 500
+ Pan2D: 0
+ rolloffMode: 0
+ BypassEffects: 0
+ BypassListenerEffects: 0
+ BypassReverbZones: 0
+ rolloffCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ - serializedVersion: 2
+ time: 1
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ panLevelCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ spreadCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ reverbZoneMixCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+--- !u!114 &30936216
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ m_GameObject: {fileID: 30936213}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 00f3402a2ea5bff4880c0313515240cd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ DefaultBodyMaterialManager: {fileID: 114000014217873308, guid: 1e465f24e493b834b85afff39ca37bac,
+ type: 2}
+ DefaultHandMaterialManager: {fileID: 114000014217873308, guid: b74f8a6e52a6d8b448dd7344b607c5ee,
+ type: 2}
+ Driver: {fileID: 30936214}
+ Base: {fileID: 554071967}
+ Body: {fileID: 1654041718}
+ ControllerLeft: {fileID: 350570438}
+ ControllerRight: {fileID: 1436046664}
+ HandLeft: {fileID: 1421016110}
+ HandRight: {fileID: 1843625169}
+ RecordPackets: 0
+ UseSDKPackets: 1
+ StartWithControllers: 1
+ FirstPersonLayer:
+ layerIndex: 0
+ ThirdPersonLayer:
+ layerIndex: 0
+ ShowFirstPerson: 1
+ ShowThirdPerson: 0
+ Capabilities: -1
+ SurfaceShader: {fileID: 4800000, guid: d0f6e1942d3d1f946a96fd8a00175474, type: 3}
+ SurfaceShaderSelfOccluding: {fileID: 4800000, guid: 10513ef587704324487f3061a7e6699d,
+ type: 3}
+ SurfaceShaderPBS: {fileID: 4800000, guid: d7662dbac0646464a9b4a48e93989adb, type: 3}
+ SurfaceShaderPBSV2Single: {fileID: 4800000, guid: 7a05888309e329e4cb98dfdd56ac3e64,
+ type: 3}
+ SurfaceShaderPBSV2Combined: {fileID: 4800000, guid: 3315a1b9c2da8fd4d8aa7e314ca27061,
+ type: 3}
+ SurfaceShaderPBSV2Simple: {fileID: 4800000, guid: 3934b2d879c6eb94eb26fa19814c7fcd,
+ type: 3}
+ oculusUserID: 0
+ CombineMeshes: 0
+ AssetsDoneLoading:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral,
+ PublicKeyToken=null
+ LeftHandCustomPose: {fileID: 0}
+ RightHandCustomPose: {fileID: 0}
+ PacketSettings:
+ UpdateRate: 0.033333335
+ LevelOfDetail: 3
+--- !u!4 &30936217
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ m_GameObject: {fileID: 30936213}
+ 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: 554071968}
+ - {fileID: 1654041719}
+ - {fileID: 1421016111}
+ - {fileID: 350570439}
+ - {fileID: 1843625170}
+ - {fileID: 1436046665}
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &53342041
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100002, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 53342042}
+ - component: {fileID: 53342044}
+ - component: {fileID: 53342043}
+ m_Layer: 0
+ m_Name: CenterEyeAnchor
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &53342042
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400002, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ m_GameObject: {fileID: 53342041}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1080567925}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &53342043
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2037080, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ m_GameObject: {fileID: 53342041}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.1
+ far clip plane: 1000
+ field of view: 90
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+ m_StereoMirrorMode: 0
+--- !u!81 &53342044
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 8100000, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ m_GameObject: {fileID: 53342041}
+ m_Enabled: 1
+--- !u!1 &56120625
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 56120626}
+ - component: {fileID: 56120627}
+ m_Layer: 0
+ m_Name: RightEyeAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &56120626
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ m_GameObject: {fileID: 56120625}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1080567925}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &56120627
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 20000010189485334, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ m_GameObject: {fileID: 56120625}
+ m_Enabled: 0
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 2
+ m_HDR: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+ m_StereoMirrorMode: 0
+--- !u!1 &350570437
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 184120, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 350570439}
+ - component: {fileID: 350570438}
+ m_Layer: 0
+ m_Name: controller_left
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &350570438
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11405130, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ m_GameObject: {fileID: 350570437}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 77e19ec58d4a9e844970103e5bd8946a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &350570439
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400938, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ m_GameObject: {fileID: 350570437}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 30936217}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &390448548
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100006, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 390448549}
+ - component: {fileID: 390448550}
+ m_Layer: 0
+ m_Name: LeftEyeAnchor
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &390448549
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400006, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ m_GameObject: {fileID: 390448548}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1080567925}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &390448550
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 20000012175207052, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ m_GameObject: {fileID: 390448548}
+ m_Enabled: 0
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 1
+ m_HDR: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+ m_StereoMirrorMode: 0
+--- !u!1 &554071966
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000010910743596, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 554071968}
+ - component: {fileID: 554071967}
+ m_Layer: 0
+ m_Name: base
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &554071967
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114000010884708534, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ m_GameObject: {fileID: 554071966}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a0e33623ec5372748b5703f61a4df82d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &554071968
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000010416372058, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ m_GameObject: {fileID: 554071966}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 30936217}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &753461663
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 753461666}
+ - component: {fileID: 753461665}
+ - component: {fileID: 753461664}
+ m_Layer: 0
+ m_Name: OVRCameraRig
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &753461664
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ m_GameObject: {fileID: 753461663}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7e933e81d3c20c74ea6fdc708a67e3a5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ queueAhead: 1
+ useRecommendedMSAALevel: 0
+ enableAdaptiveResolution: 0
+ minRenderScale: 0.7
+ maxRenderScale: 1
+ expandMixedRealityCapturePropertySheet: 0
+ enableMixedReality: 0
+ compositionMethod: 0
+ extraHiddenLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ capturingCameraDevice: 0
+ flipCameraFrameHorizontally: 0
+ flipCameraFrameVertically: 0
+ handPoseStateLatency: 0
+ sandwichCompositionRenderLatency: 0
+ sandwichCompositionBufferedFrames: 8
+ chromaKeyColor: {r: 0, g: 1, b: 0, a: 1}
+ chromaKeySimilarity: 0.6
+ chromaKeySmoothRange: 0.03
+ chromaKeySpillRange: 0.06
+ useDynamicLighting: 0
+ depthQuality: 1
+ dynamicLightingSmoothFactor: 8
+ dynamicLightingDepthVariationClampingValue: 0.001
+ virtualGreenScreenType: 0
+ virtualGreenScreenTopY: 10
+ virtualGreenScreenBottomY: -10
+ virtualGreenScreenApplyDepthCulling: 0
+ virtualGreenScreenDepthTolerance: 0.2
+ _trackingOriginType: 1
+ usePositionTracking: 1
+ useRotationTracking: 1
+ useIPDInPositionTracking: 1
+ resetTrackerOnLoad: 0
+--- !u!114 &753461665
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11400010, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ m_GameObject: {fileID: 753461663}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: df9f338034892c44ebb62d97894772f1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ usePerEyeCameras: 0
+ useFixedUpdateForTracking: 0
+--- !u!4 &753461666
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ m_GameObject: {fileID: 753461663}
+ 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: 1080567925}
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &957641525
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 957641529}
+ - component: {fileID: 957641528}
+ - component: {fileID: 957641527}
+ - component: {fileID: 957641526}
+ m_Layer: 0
+ m_Name: Floor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 4294967295
+ m_IsActive: 1
+--- !u!23 &957641526
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 957641525}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+--- !u!65 &957641527
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 957641525}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &957641528
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 957641525}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &957641529
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 957641525}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.5, z: 0}
+ m_LocalScale: {x: 10, y: 1, z: 10}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1080567924
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 159718, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1080567925}
+ m_Layer: 0
+ m_Name: TrackingSpace
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1080567925
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 459718, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ m_GameObject: {fileID: 1080567924}
+ 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: 390448549}
+ - {fileID: 53342042}
+ - {fileID: 56120626}
+ - {fileID: 1754791342}
+ - {fileID: 1162487503}
+ - {fileID: 2098184029}
+ m_Father: {fileID: 753461666}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1162487502
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 109308, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1162487503}
+ m_Layer: 0
+ m_Name: LeftHandAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1162487503
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 482130, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ m_GameObject: {fileID: 1162487502}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1080567925}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &1269396464
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_RootOrder
+ value: 3
+ objectReference: {fileID: 0}
+ - target: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: _trackingOriginType
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalScale.z
+ value: 1
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_RootGameObject: {fileID: 753461663}
+ m_IsPrefabParent: 0
+--- !u!1 &1421016109
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000011125779090, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1421016111}
+ - component: {fileID: 1421016110}
+ m_Layer: 0
+ m_Name: hand_left
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1421016110
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114000011404857786, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ m_GameObject: {fileID: 1421016109}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e53b07ad62d980a4da9fffff0b05fd2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &1421016111
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000013364346644, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ m_GameObject: {fileID: 1421016109}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 30936217}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1436046663
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 157742, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1436046665}
+ - component: {fileID: 1436046664}
+ m_Layer: 0
+ m_Name: controller_right
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1436046664
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11477770, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ m_GameObject: {fileID: 1436046663}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 77e19ec58d4a9e844970103e5bd8946a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &1436046665
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 448722, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ m_GameObject: {fileID: 1436046663}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 30936217}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &1512034972
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_RootOrder
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: StartWithControllers
+ value: 1
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_RootGameObject: {fileID: 30936213}
+ m_IsPrefabParent: 0
+--- !u!1 &1654041717
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000012026592076, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1654041719}
+ - component: {fileID: 1654041718}
+ m_Layer: 0
+ m_Name: body
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1654041718
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114000012186362028, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ m_GameObject: {fileID: 1654041717}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: eb7a6650b6cb46545967d3b380b7396c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &1654041719
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000014100970646, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ m_GameObject: {fileID: 1654041717}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 1.6, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 30936217}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1658970730
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1658970732}
+ - component: {fileID: 1658970731}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &1658970731
+Light:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1658970730}
+ m_Enabled: 1
+ serializedVersion: 7
+ m_Type: 1
+ m_Color: {r: 0.5955882, g: 0.5955882, b: 0.5955882, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_Lightmapping: 4
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &1658970732
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1658970730}
+ m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!1 &1754791341
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 168682, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1754791342}
+ m_Layer: 0
+ m_Name: TrackerAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1754791342
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 468682, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ m_GameObject: {fileID: 1754791341}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1080567925}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1843625168
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000010482306814, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1843625170}
+ - component: {fileID: 1843625169}
+ m_Layer: 0
+ m_Name: hand_right
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1843625169
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114000010372160784, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ m_GameObject: {fileID: 1843625168}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e53b07ad62d980a4da9fffff0b05fd2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &1843625170
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000011212216358, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1512034972}
+ m_GameObject: {fileID: 1843625168}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 30936217}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2098184028
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 113768, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 2098184029}
+ m_Layer: 0
+ m_Name: RightHandAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2098184029
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 487254, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1269396464}
+ m_GameObject: {fileID: 2098184028}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1080567925}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/Assets/Oculus/Avatar/Samples/Controllers/Controllers.unity.meta b/Assets/Oculus/Avatar/Samples/Controllers/Controllers.unity.meta
new file mode 100644
index 0000000..c1de067
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/Controllers/Controllers.unity.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2a83dd010542d2744bf59af99b4bc47c
+timeCreated: 1468457372
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/CrossPlatform.meta b/Assets/Oculus/Avatar/Samples/CrossPlatform.meta
new file mode 100644
index 0000000..effbacd
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/CrossPlatform.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 6b1bc2f99b5a3a042aed559717762f28
+folderAsset: yes
+timeCreated: 1536104808
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/CrossPlatform/CrossPlatform.unity b/Assets/Oculus/Avatar/Samples/CrossPlatform/CrossPlatform.unity
new file mode 100644
index 0000000..6bcfa60
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/CrossPlatform/CrossPlatform.unity
@@ -0,0 +1,1138 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 8
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 11
+ m_GIWorkflowMode: 0
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_TemporalCoherenceThreshold: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 1
+ m_LightmapEditorSettings:
+ serializedVersion: 9
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_TextureWidth: 1024
+ m_TextureHeight: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 0
+ m_CompAOExponentDirect: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 1024
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 1
+ m_BakeBackend: 0
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 500
+ m_PVRBounces: 2
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVRFilteringMode: 0
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ShowResolutionOverlay: 1
+ m_LightingDataAsset: {fileID: 0}
+ m_UseShadowmask: 0
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1001 &42825988
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 10
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_RootOrder
+ value: 12
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.z
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: oculusUserID
+ value: 10150030458827644
+ objectReference: {fileID: 0}
+ - target: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_Name
+ value: LocalAvatar (11)
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowThirdPerson
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowFirstPerson
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_IsPrefabParent: 0
+--- !u!1001 &334702974
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 11
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_RootOrder
+ value: 13
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.z
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: oculusUserID
+ value: 10150030458843421
+ objectReference: {fileID: 0}
+ - target: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_Name
+ value: LocalAvatar (12)
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowThirdPerson
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowFirstPerson
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_IsPrefabParent: 0
+--- !u!1001 &470155066
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_RootOrder
+ value: 3
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.z
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: oculusUserID
+ value: 10150030458738922
+ objectReference: {fileID: 0}
+ - target: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_Name
+ value: LocalAvatar (2)
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowThirdPerson
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowFirstPerson
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_IsPrefabParent: 0
+--- !u!1001 &581305526
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_RootOrder
+ value: 4
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.z
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: oculusUserID
+ value: 10150030458747067
+ objectReference: {fileID: 0}
+ - target: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_Name
+ value: LocalAvatar (3)
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowThirdPerson
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowFirstPerson
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_IsPrefabParent: 0
+--- !u!1001 &591454203
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_RootOrder
+ value: 7
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.z
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: oculusUserID
+ value: 10150030458769900
+ objectReference: {fileID: 0}
+ - target: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_Name
+ value: LocalAvatar (6)
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowThirdPerson
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowFirstPerson
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_IsPrefabParent: 0
+--- !u!1001 &684816837
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 7
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_RootOrder
+ value: 9
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.z
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: oculusUserID
+ value: 10150030458785587
+ objectReference: {fileID: 0}
+ - target: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_Name
+ value: LocalAvatar (8)
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowThirdPerson
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowFirstPerson
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_IsPrefabParent: 0
+--- !u!1001 &1012700868
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_RootOrder
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.z
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: oculusUserID
+ value: 10150030458727564
+ objectReference: {fileID: 0}
+ - target: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_Name
+ value: LocalAvatar (1)
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowThirdPerson
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowFirstPerson
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_IsPrefabParent: 0
+--- !u!1001 &1239677853
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 5.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_RootOrder
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalScale.z
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: _trackingOriginType
+ value: 1
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_IsPrefabParent: 0
+--- !u!1001 &1548752833
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 4
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_RootOrder
+ value: 6
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.z
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: oculusUserID
+ value: 10150030458762178
+ objectReference: {fileID: 0}
+ - target: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_Name
+ value: LocalAvatar (5)
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowThirdPerson
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowFirstPerson
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_IsPrefabParent: 0
+--- !u!1001 &1639391999
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 6
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_RootOrder
+ value: 8
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.z
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: oculusUserID
+ value: 10150030458775732
+ objectReference: {fileID: 0}
+ - target: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_Name
+ value: LocalAvatar (7)
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowThirdPerson
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowFirstPerson
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_IsPrefabParent: 0
+--- !u!1 &1658970730
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1658970732}
+ - component: {fileID: 1658970731}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &1658970731
+Light:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1658970730}
+ m_Enabled: 1
+ serializedVersion: 8
+ m_Type: 1
+ m_Color: {r: 0.5955882, g: 0.5955882, b: 0.5955882, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_Lightmapping: 4
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &1658970732
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1658970730}
+ m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!1001 &1805004154
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 8
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_RootOrder
+ value: 10
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.z
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: oculusUserID
+ value: 10150030458806683
+ objectReference: {fileID: 0}
+ - target: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_Name
+ value: LocalAvatar (9)
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowThirdPerson
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowFirstPerson
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_IsPrefabParent: 0
+--- !u!1001 &1905681510
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 9
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_RootOrder
+ value: 11
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.z
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: oculusUserID
+ value: 10150030458820129
+ objectReference: {fileID: 0}
+ - target: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_Name
+ value: LocalAvatar (10)
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowThirdPerson
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowFirstPerson
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_IsPrefabParent: 0
+--- !u!1001 &2000186629
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 3
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_RootOrder
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.z
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: oculusUserID
+ value: 10150030458756715
+ objectReference: {fileID: 0}
+ - target: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_Name
+ value: LocalAvatar (4)
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowThirdPerson
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowFirstPerson
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_IsPrefabParent: 0
diff --git a/Assets/Oculus/Avatar/Samples/CrossPlatform/CrossPlatform.unity.meta b/Assets/Oculus/Avatar/Samples/CrossPlatform/CrossPlatform.unity.meta
new file mode 100644
index 0000000..e8a6670
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/CrossPlatform/CrossPlatform.unity.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: cfdeeba4226b23c4691e78d2432e7d88
+timeCreated: 1532560992
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/CrossPlatform/Readme.txt b/Assets/Oculus/Avatar/Samples/CrossPlatform/Readme.txt
new file mode 100644
index 0000000..9ac8c42
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/CrossPlatform/Readme.txt
@@ -0,0 +1,41 @@
+This Cross Platform Unity scene demonstrates how to use Oculus Avatar SDK without the Oculus Platform SDK.
+
+Setup instructions:
+1 - Create a new Unity Project
+2 - Import the Oculus Avatar SDK Unity package: https://developer.oculus.com/downloads/package/oculus-avatar-sdk/
+3 - Open this CrossPlatform scene (in Assets/Oculus/Avatar/Samples/CrossPlatform)
+4 - Import Oculus Utilities for Unity: https://developer.oculus.com/downloads/package/oculus-utilities-for-unity-5/
+5 - Do *not* import the Oculus Platform SDK for Unity!
+6 - Delete the imported SocialStarter folder from Assets/Oculus/Avatar/Samples (it demos Platform features, we don't need it for this)
+7 - Use the Oculus Dashboard (https://dashboard.oculus.com/) to create a placeholder Rift app and copy the App ID
+8 - Paste the App ID in Unity under Oculus Avatars > Edit Configuration > Oculus Rift App Id
+9 - Enable OpenVR:
+ Open PlayerSettings in the Inspector tab (menu Edit > Project Settings > Player)
+ In PlayerSettings expand XR Settings
+ Under Virtual Reality SDKs, add OpenVR
+10 - Click Play
+
+
+Changing Avatar customization:
+1 - Note the "LocalAvatar" GameObjects in the scene. Each Avatar has distinct customization.
+2 - Inspect each LocalAvatar GameObject and observe the attached Ovr Avatar Script component and the "Oculus User ID" property set on each.
+3 - Create your own test accounts to customize your Avatars.
+4 - Use your own User IDs in this sample scene. (You will have to leave and reenter Play mode to apply Avatar User ID changes.)
+
+
+
+Redistribution:
+When packaging a Cross Platform application using Oculus Avatars, you will need to include:
+ * libovravatar.dll
+ * OvrAvatarAssets.zip
+On a computer with the Oculus launcher, these files can be found in "C:\Program Files\Oculus\Support\oculus-runtime" by default.
+
+You also need to include the Oculus Avatar SDK License, found here: https://developer.oculus.com/licenses/avatar-sdk-1.0/
+
+In your Unity project's Assets folder, add these files to a Plugins directory.
+
+NOTE: Unity's Build will only copy DLL files in a Plugins directory over to the output Plugins directory.
+You must manually copy OvrAvatarAssets.zip to the output Plugins directory.
+You can automate this process with a script adding a custom build command,
+see the Unity docs here: https://docs.unity3d.com/Manual/BuildPlayerPipeline.html
+
diff --git a/Assets/Oculus/Avatar/Samples/CrossPlatform/Readme.txt.meta b/Assets/Oculus/Avatar/Samples/CrossPlatform/Readme.txt.meta
new file mode 100644
index 0000000..936c686
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/CrossPlatform/Readme.txt.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5569c00e32b73d845831ece15c9f1e36
+timeCreated: 1532561014
+licenseType: Store
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/GripPoses.meta b/Assets/Oculus/Avatar/Samples/GripPoses.meta
new file mode 100644
index 0000000..42860b4
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/GripPoses.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: b8c4b9475079cf040953bf344ff4e44f
+folderAsset: yes
+timeCreated: 1477955918
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/GripPoses/GripPoses.unity b/Assets/Oculus/Avatar/Samples/GripPoses/GripPoses.unity
new file mode 100644
index 0000000..1e71a0f
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/GripPoses/GripPoses.unity
@@ -0,0 +1,2756 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 7
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 7
+ m_GIWorkflowMode: 0
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_TemporalCoherenceThreshold: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 1
+ m_LightmapEditorSettings:
+ serializedVersion: 4
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_TextureWidth: 1024
+ m_TextureHeight: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_DirectLightInLightProbes: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_LightingDataAsset: {fileID: 0}
+ m_RuntimeCPUUsage: 25
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ accuratePlacement: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &26803798
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000010454308426, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 26803799}
+ m_Layer: 0
+ m_Name: hands:b_l_middle1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &26803799
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000010529492032, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 26803798}
+ m_LocalRotation: {x: -0.03365187, y: 0.6480089, z: 0.75659454, w: 0.080726825}
+ m_LocalPosition: {x: 0.09142233, y: -0.009532144, z: -0.010838794}
+ m_LocalScale: {x: 1.0000001, y: 1.0000001, z: 1}
+ m_Children:
+ - {fileID: 239467253}
+ m_Father: {fileID: 313519822}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &30936213
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 30936217}
+ - component: {fileID: 30936216}
+ - component: {fileID: 30936215}
+ - component: {fileID: 30936214}
+ m_Layer: 0
+ m_Name: LocalAvatar
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &30936214
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11441414, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ m_GameObject: {fileID: 30936213}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: ac27124318cf8e84aa7350c2ac1cdb80, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Mode: 0
+--- !u!82 &30936215
+AudioSource:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 8254050, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ m_GameObject: {fileID: 30936213}
+ m_Enabled: 1
+ serializedVersion: 4
+ OutputAudioMixerGroup: {fileID: 0}
+ m_audioClip: {fileID: 0}
+ m_PlayOnAwake: 1
+ m_Volume: 1
+ m_Pitch: 1
+ Loop: 0
+ Mute: 0
+ Spatialize: 0
+ SpatializePostEffects: 0
+ Priority: 128
+ DopplerLevel: 1
+ MinDistance: 1
+ MaxDistance: 500
+ Pan2D: 0
+ rolloffMode: 0
+ BypassEffects: 0
+ BypassListenerEffects: 0
+ BypassReverbZones: 0
+ rolloffCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ - serializedVersion: 2
+ time: 1
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ panLevelCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ spreadCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ reverbZoneMixCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+--- !u!114 &30936216
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ m_GameObject: {fileID: 30936213}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 00f3402a2ea5bff4880c0313515240cd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ DefaultBodyMaterialManager: {fileID: 114000014217873308, guid: 1e465f24e493b834b85afff39ca37bac,
+ type: 2}
+ DefaultHandMaterialManager: {fileID: 114000014217873308, guid: b74f8a6e52a6d8b448dd7344b607c5ee,
+ type: 2}
+ Driver: {fileID: 30936214}
+ Base: {fileID: 554071967}
+ Body: {fileID: 1654041718}
+ ControllerLeft: {fileID: 350570438}
+ ControllerRight: {fileID: 1436046664}
+ HandLeft: {fileID: 1421016110}
+ HandRight: {fileID: 1843625169}
+ RecordPackets: 0
+ UseSDKPackets: 1
+ StartWithControllers: 0
+ FirstPersonLayer:
+ layerIndex: 0
+ ThirdPersonLayer:
+ layerIndex: 0
+ ShowFirstPerson: 1
+ ShowThirdPerson: 0
+ Capabilities: -1
+ SurfaceShader: {fileID: 4800000, guid: d0f6e1942d3d1f946a96fd8a00175474, type: 3}
+ SurfaceShaderSelfOccluding: {fileID: 4800000, guid: 10513ef587704324487f3061a7e6699d,
+ type: 3}
+ SurfaceShaderPBS: {fileID: 4800000, guid: d7662dbac0646464a9b4a48e93989adb, type: 3}
+ SurfaceShaderPBSV2Single: {fileID: 4800000, guid: 7a05888309e329e4cb98dfdd56ac3e64,
+ type: 3}
+ SurfaceShaderPBSV2Combined: {fileID: 4800000, guid: 3315a1b9c2da8fd4d8aa7e314ca27061,
+ type: 3}
+ SurfaceShaderPBSV2Simple: {fileID: 4800000, guid: 3934b2d879c6eb94eb26fa19814c7fcd,
+ type: 3}
+ oculusUserID: 0
+ CombineMeshes: 0
+ AssetsDoneLoading:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral,
+ PublicKeyToken=null
+ LeftHandCustomPose: {fileID: 585168899}
+ RightHandCustomPose: {fileID: 1365922220}
+ PacketSettings:
+ UpdateRate: 0.033333335
+ LevelOfDetail: 3
+--- !u!4 &30936217
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ m_GameObject: {fileID: 30936213}
+ 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: 554071968}
+ - {fileID: 1654041719}
+ - {fileID: 470598175}
+ - {fileID: 350570439}
+ - {fileID: 1906766866}
+ - {fileID: 1436046665}
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &34790505
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 34790507}
+ - component: {fileID: 34790506}
+ m_Layer: 0
+ m_Name: RightHandPoseEditHelper
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &34790506
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 34790505}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 6bc5b4ba964e02b4ea773b2aaca7dc67, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ poseRoot: {fileID: 1365922220}
+--- !u!4 &34790507
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 34790505}
+ 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: 1365922220}
+ m_Father: {fileID: 1906766866}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &53342041
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100002, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 53342042}
+ - component: {fileID: 53342044}
+ - component: {fileID: 53342043}
+ m_Layer: 0
+ m_Name: CenterEyeAnchor
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &53342042
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400002, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ m_GameObject: {fileID: 53342041}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1080567925}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &53342043
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2037080, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ m_GameObject: {fileID: 53342041}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.1
+ far clip plane: 1000
+ field of view: 90
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+ m_StereoMirrorMode: 0
+--- !u!81 &53342044
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 8100000, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ m_GameObject: {fileID: 53342041}
+ m_Enabled: 1
+--- !u!1 &56120625
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 56120626}
+ - component: {fileID: 56120627}
+ m_Layer: 0
+ m_Name: RightEyeAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &56120626
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ m_GameObject: {fileID: 56120625}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1080567925}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &56120627
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 20000010189485334, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ m_GameObject: {fileID: 56120625}
+ m_Enabled: 0
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 2
+ m_HDR: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+ m_StereoMirrorMode: 0
+--- !u!1 &56595420
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000011683760016, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 56595421}
+ m_Layer: 0
+ m_Name: hands:b_l_pinky1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &56595421
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000014246121946, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 56595420}
+ m_LocalRotation: {x: -0.018903391, y: 0.006742826, z: 0.9928664, w: 0.11753104}
+ m_LocalPosition: {x: 0.053570647, y: 0.002438396, z: -0.0014630293}
+ m_LocalScale: {x: 1.0000001, y: 1.0000001, z: 1}
+ m_Children:
+ - {fileID: 136091887}
+ m_Father: {fileID: 1924116398}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &96379235
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000011819343988, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 96379236}
+ m_Layer: 0
+ m_Name: hands:b_l_grip
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &96379236
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000010032463254, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 96379235}
+ m_LocalRotation: {x: 0.31257486, y: -0.7696517, z: -0.018750966, w: 0.55640054}
+ m_LocalPosition: {x: 0.07215909, y: -0.013962122, z: 0.018992186}
+ m_LocalScale: {x: 0.9999999, y: 1.0000001, z: 1.0000001}
+ m_Children: []
+ m_Father: {fileID: 313519822}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &99467182
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000014156853104, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 99467183}
+ m_Layer: 0
+ m_Name: hands:b_r_grip
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &99467183
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000013762714132, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 99467182}
+ m_LocalRotation: {x: 0.55640054, y: -0.018751018, z: 0.76965183, w: -0.31257483}
+ m_LocalPosition: {x: -0.072158195, y: 0.013962137, z: -0.01899168}
+ m_LocalScale: {x: 0.99999994, y: 1.0000004, z: 1.0000002}
+ m_Children: []
+ m_Father: {fileID: 256016476}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &136091886
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000011987305466, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 136091887}
+ m_Layer: 0
+ m_Name: hands:b_l_pinky2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &136091887
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000011527629484, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 136091886}
+ m_LocalRotation: {x: -0.00000005668701, y: -0.00000014201431, z: -0.16458213, w: 0.9863634}
+ m_LocalPosition: {x: -0.03335595, y: -0.000000005462158, z: 0.0000000032950203}
+ m_LocalScale: {x: 0.9999999, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1934855145}
+ m_Father: {fileID: 56595421}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &188612933
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000013523545764, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 188612934}
+ m_Layer: 0
+ m_Name: hands:b_l_ring2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &188612934
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000011216156508, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 188612933}
+ m_LocalRotation: {x: 0.000000022927209, y: -0.00000005418313, z: -0.20290457, w: 0.9791986}
+ m_LocalPosition: {x: -0.03857202, y: -8.330935e-10, z: 0.000000006690977}
+ m_LocalScale: {x: 0.9999998, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1911745904}
+ m_Father: {fileID: 1436277364}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &239467252
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000010705688472, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 239467253}
+ m_Layer: 0
+ m_Name: hands:b_l_middle2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &239467253
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000013179478382, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 239467252}
+ m_LocalRotation: {x: 0.000000037141525, y: -0.00000010928968, z: -0.23558179, w: 0.97185457}
+ m_LocalPosition: {x: -0.04596742, y: -0.000000018352134, z: 0.0000000024601723}
+ m_LocalScale: {x: 0.9999999, y: 1, z: 0.9999999}
+ m_Children:
+ - {fileID: 1903904373}
+ m_Father: {fileID: 26803799}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &256016475
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000012855789030, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 256016476}
+ m_Layer: 0
+ m_Name: hands:b_r_hand
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &256016476
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000013646848534, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 256016475}
+ m_LocalRotation: {x: -0.0544794, y: 0.76687974, z: 0.14423032, w: 0.6229969}
+ m_LocalPosition: {x: 0.022390217, y: -0.034886185, z: -0.111438304}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 99467183}
+ - {fileID: 1448414926}
+ - {fileID: 1690781231}
+ - {fileID: 1208440875}
+ - {fileID: 914695922}
+ - {fileID: 445516544}
+ - {fileID: 1677342976}
+ m_Father: {fileID: 1365922220}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &313519821
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000011482107920, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 313519822}
+ m_Layer: 0
+ m_Name: hands:b_l_hand
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &313519822
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000013452988566, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 313519821}
+ m_LocalRotation: {x: 0.6229968, y: -0.14423034, z: 0.7668798, w: 0.054479446}
+ m_LocalPosition: {x: -0.022390187, y: -0.034886137, z: -0.11143835}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 96379236}
+ - {fileID: 758256568}
+ - {fileID: 870347746}
+ - {fileID: 26803799}
+ - {fileID: 1924116398}
+ - {fileID: 1436277364}
+ - {fileID: 1601188193}
+ m_Father: {fileID: 585168899}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &316040181
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000012586892280, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 316040182}
+ m_Layer: 0
+ m_Name: hands:b_r_middle3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &316040182
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000012760637678, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 316040181}
+ m_LocalRotation: {x: 0.000000011001792, y: 0.000000001377423, z: -0.06577554, w: 0.99783444}
+ m_LocalPosition: {x: 0.02959023, y: -0.00000016815946, z: -0.00000006537217}
+ m_LocalScale: {x: 1, y: 1.0000001, z: 1.0000001}
+ m_Children:
+ - {fileID: 620480710}
+ m_Father: {fileID: 1470779009}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &329783417
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000013940353552, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 329783418}
+ m_Layer: 0
+ m_Name: hands:b_r_index3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &329783418
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000010357036850, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 329783417}
+ m_LocalRotation: {x: -0.000000043650598, y: 0.00000003915311, z: -0.05959587, w: 0.99822265}
+ m_LocalPosition: {x: 0.022152934, y: -0.00000021660776, z: -0.00000003802672}
+ m_LocalScale: {x: 0.9999999, y: 0.9999999, z: 0.99999994}
+ m_Children:
+ - {fileID: 843058192}
+ m_Father: {fileID: 376675011}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &350570437
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 184120, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 350570439}
+ - component: {fileID: 350570438}
+ m_Layer: 0
+ m_Name: controller_left
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &350570438
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11405130, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ m_GameObject: {fileID: 350570437}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 77e19ec58d4a9e844970103e5bd8946a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &350570439
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400938, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ m_GameObject: {fileID: 350570437}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 30936217}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &363627943
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000010747787136, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 363627944}
+ m_Layer: 0
+ m_Name: hands:b_l_pinky_ignore
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &363627944
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000010274150756, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 363627943}
+ m_LocalRotation: {x: -0.000000009772398, y: -6.703349e-10, z: -0.0000000016464395,
+ w: 1}
+ m_LocalPosition: {x: -0.01944124, y: -0.0000000024336448, z: 0.0000000012287399}
+ m_LocalScale: {x: 1, y: 0.99999994, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1934855145}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &376675010
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000011286598088, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 376675011}
+ m_Layer: 0
+ m_Name: hands:b_r_index2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &376675011
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000014263687414, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 376675010}
+ m_LocalRotation: {x: 0.000000015652539, y: -0.00000017256959, z: -0.18624677, w: 0.98250306}
+ m_LocalPosition: {x: 0.0415749, y: -0.00000025658417, z: -0.00000039068158}
+ m_LocalScale: {x: 1.0000002, y: 1.0000001, z: 1.0000001}
+ m_Children:
+ - {fileID: 329783418}
+ m_Father: {fileID: 1690781231}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &390448548
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100006, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 390448549}
+ - component: {fileID: 390448550}
+ m_Layer: 0
+ m_Name: LeftEyeAnchor
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &390448549
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400006, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ m_GameObject: {fileID: 390448548}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1080567925}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &390448550
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 20000012175207052, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ m_GameObject: {fileID: 390448548}
+ m_Enabled: 0
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 1
+ m_HDR: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+ m_StereoMirrorMode: 0
+--- !u!1 &445516543
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000013154274196, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 445516544}
+ m_Layer: 0
+ m_Name: hands:b_r_ring1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &445516544
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000010696968466, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 445516543}
+ m_LocalRotation: {x: -0.10180093, y: 0.56929916, z: 0.8152098, w: 0.031114696}
+ m_LocalPosition: {x: -0.0895311, y: -0.012713969, z: 0.0018533244}
+ m_LocalScale: {x: 1.0000001, y: 1, z: 1.0000001}
+ m_Children:
+ - {fileID: 671216321}
+ m_Father: {fileID: 256016476}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &470598175
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000013364346644, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ m_GameObject: {fileID: 1421016109}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 560474079}
+ m_Father: {fileID: 30936217}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &491546331
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000014126987918, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 491546332}
+ m_Layer: 0
+ m_Name: hands:b_l_middle_ignore
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &491546332
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000012322389972, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 491546331}
+ m_LocalRotation: {x: 1.6939072e-10, y: 1.9323143e-10, z: 6.3522637e-10, w: 1}
+ m_LocalPosition: {x: -0.026469607, y: 0.0000000036855743, z: 0.000000003584191}
+ m_LocalScale: {x: 1, y: 0.99999994, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1903904373}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &554071966
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000010910743596, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 554071968}
+ - component: {fileID: 554071967}
+ m_Layer: 0
+ m_Name: base
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &554071967
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114000010884708534, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ m_GameObject: {fileID: 554071966}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a0e33623ec5372748b5703f61a4df82d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &554071968
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000010416372058, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ m_GameObject: {fileID: 554071966}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 30936217}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &560474077
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 560474079}
+ - component: {fileID: 560474078}
+ m_Layer: 0
+ m_Name: LeftHandPoseEditHelper
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &560474078
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 560474077}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 6bc5b4ba964e02b4ea773b2aaca7dc67, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ poseRoot: {fileID: 585168899}
+--- !u!4 &560474079
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 560474077}
+ 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: 585168899}
+ m_Father: {fileID: 470598175}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &563908831
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 563908833}
+ - component: {fileID: 563908832}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &563908832
+Light:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 563908831}
+ m_Enabled: 1
+ serializedVersion: 7
+ m_Type: 1
+ m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_Lightmapping: 4
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &563908833
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 563908831}
+ m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!1 &585168898
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 585168899}
+ m_Layer: 0
+ m_Name: hands_l_hand_world
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &585168899
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 585168898}
+ 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: 313519822}
+ m_Father: {fileID: 560474079}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &600624809
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000012510561956, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 600624810}
+ m_Layer: 0
+ m_Name: hands:b_r_pinky1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &600624810
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000013193183530, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 600624809}
+ m_LocalRotation: {x: -0.01890341, y: 0.0067427615, z: 0.9928664, w: 0.11753096}
+ m_LocalPosition: {x: -0.05356621, y: -0.002439512, z: 0.0014644872}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1241509020}
+ m_Father: {fileID: 914695922}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &620480709
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000012971578408, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 620480710}
+ m_Layer: 0
+ m_Name: hands:b_r_middle_ignore
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &620480710
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000011751791164, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 620480709}
+ m_LocalRotation: {x: -0.0000000014362507, y: -0.000000002820773, z: -0.000000022191672,
+ w: 1}
+ m_LocalPosition: {x: 0.026469525, y: 0.00000040609203, z: 0.00000019350924}
+ m_LocalScale: {x: 1, y: 0.9999999, z: 1}
+ m_Children: []
+ m_Father: {fileID: 316040182}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &665325992
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000014232464268, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 665325993}
+ m_Layer: 0
+ m_Name: hands:b_r_thumb3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &665325993
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000012208129616, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 665325992}
+ m_LocalRotation: {x: -0.000000007942694, y: 0.000000010101241, z: 0.008720721, w: 0.99996203}
+ m_LocalPosition: {x: 0.02637508, y: -0.000003140552, z: 0.00000024192715}
+ m_LocalScale: {x: 1, y: 1, z: 1.0000001}
+ m_Children:
+ - {fileID: 924884950}
+ m_Father: {fileID: 1827566768}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &671216320
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000010439537112, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 671216321}
+ m_Layer: 0
+ m_Name: hands:b_r_ring2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &671216321
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000014138112998, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 671216320}
+ m_LocalRotation: {x: 0.00000003873586, y: 0.00000004148523, z: -0.20290461, w: 0.9791986}
+ m_LocalPosition: {x: 0.038571976, y: 0.000000016822588, z: -0.00000011697061}
+ m_LocalScale: {x: 0.9999999, y: 1, z: 1}
+ m_Children:
+ - {fileID: 936747930}
+ m_Father: {fileID: 445516544}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &753461663
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 753461666}
+ - component: {fileID: 753461665}
+ - component: {fileID: 753461664}
+ m_Layer: 0
+ m_Name: OVRCameraRig
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &753461664
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ m_GameObject: {fileID: 753461663}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7e933e81d3c20c74ea6fdc708a67e3a5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ queueAhead: 1
+ useRecommendedMSAALevel: 0
+ enableAdaptiveResolution: 0
+ minRenderScale: 0.7
+ maxRenderScale: 1
+ expandMixedRealityCapturePropertySheet: 0
+ enableMixedReality: 0
+ compositionMethod: 0
+ extraHiddenLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ capturingCameraDevice: 0
+ flipCameraFrameHorizontally: 0
+ flipCameraFrameVertically: 0
+ handPoseStateLatency: 0
+ sandwichCompositionRenderLatency: 0
+ sandwichCompositionBufferedFrames: 8
+ chromaKeyColor: {r: 0, g: 1, b: 0, a: 1}
+ chromaKeySimilarity: 0.6
+ chromaKeySmoothRange: 0.03
+ chromaKeySpillRange: 0.06
+ useDynamicLighting: 0
+ depthQuality: 1
+ dynamicLightingSmoothFactor: 8
+ dynamicLightingDepthVariationClampingValue: 0.001
+ virtualGreenScreenType: 0
+ virtualGreenScreenTopY: 10
+ virtualGreenScreenBottomY: -10
+ virtualGreenScreenApplyDepthCulling: 0
+ virtualGreenScreenDepthTolerance: 0.2
+ _trackingOriginType: 1
+ usePositionTracking: 1
+ useRotationTracking: 1
+ useIPDInPositionTracking: 1
+ resetTrackerOnLoad: 0
+--- !u!114 &753461665
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11400010, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ m_GameObject: {fileID: 753461663}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: df9f338034892c44ebb62d97894772f1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ usePerEyeCameras: 0
+ useFixedUpdateForTracking: 0
+--- !u!4 &753461666
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ m_GameObject: {fileID: 753461663}
+ 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: 1080567925}
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &758256567
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000010924450336, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 758256568}
+ m_Layer: 0
+ m_Name: hands:b_l_hand_ignore
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &758256568
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000010716107878, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 758256567}
+ m_LocalRotation: {x: 0.22704251, y: 0.00000008674858, z: -0.000000018270624, w: 0.9738849}
+ m_LocalPosition: {x: 0.13611393, y: 0.000000015238625, z: -0.00000001802008}
+ m_LocalScale: {x: 1, y: 1.0000001, z: 0.9999999}
+ m_Children: []
+ m_Father: {fileID: 313519822}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &800529965
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000010381448528, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 800529966}
+ m_Layer: 0
+ m_Name: hands:b_l_thumb_ignore
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &800529966
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000012002987360, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 800529965}
+ m_LocalRotation: {x: -0.0000000013989427, y: -0.000000008504275, z: 0.000000004478251,
+ w: 1}
+ m_LocalPosition: {x: -0.03407956, y: 0.000000008410045, z: 0.000000006773969}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1196414139}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &843058191
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000011070112746, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 843058192}
+ m_Layer: 0
+ m_Name: hands:b_r_index_ignore
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &843058192
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000010575000096, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 843058191}
+ m_LocalRotation: {x: 0.0000000020884363, y: 0.000000003619726, z: 0.000000009402631,
+ w: 1}
+ m_LocalPosition: {x: 0.029121779, y: 0.0000002786395, z: 0.0000010442106}
+ m_LocalScale: {x: 1, y: 1, z: 0.99999994}
+ m_Children: []
+ m_Father: {fileID: 329783418}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &870347745
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000013661276380, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 870347746}
+ m_Layer: 0
+ m_Name: hands:b_l_index1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &870347746
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000014155328254, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 870347745}
+ m_LocalRotation: {x: -0.010945108, y: -0.7329413, z: -0.66095215, w: -0.16068432}
+ m_LocalPosition: {x: 0.087078705, y: -0.0350999, z: -0.006813981}
+ m_LocalScale: {x: 1.0000002, y: 1.0000001, z: 1.0000002}
+ m_Children:
+ - {fileID: 1976326465}
+ m_Father: {fileID: 313519822}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &914695921
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000012093083856, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 914695922}
+ m_Layer: 0
+ m_Name: hands:b_r_pinky0
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &914695922
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000012203521522, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 914695921}
+ m_LocalRotation: {x: -0.4693215, y: -0.08311145, z: 0.0867284, w: 0.87481886}
+ m_LocalPosition: {x: -0.03127473, y: -0.019069267, z: -0.011509162}
+ m_LocalScale: {x: 1.0000001, y: 0.9999999, z: 1.0000001}
+ m_Children:
+ - {fileID: 600624810}
+ m_Father: {fileID: 256016476}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &924884949
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000010806359444, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 924884950}
+ m_Layer: 0
+ m_Name: hands:b_r_thumb_ignore
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &924884950
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000010251195448, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 924884949}
+ m_LocalRotation: {x: -0.000000007437272, y: -0.000000005285605, z: 0.000000003233399,
+ w: 1}
+ m_LocalPosition: {x: 0.034079228, y: 0.00000027135118, z: 0.00000011445174}
+ m_LocalScale: {x: 0.99999994, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 665325993}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &936747929
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000012016441122, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 936747930}
+ m_Layer: 0
+ m_Name: hands:b_r_ring3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &936747930
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000013519291214, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 936747929}
+ m_LocalRotation: {x: 0.00000002538091, y: -0.000000057510338, z: -0.08394359, w: 0.9964705}
+ m_LocalPosition: {x: 0.025775367, y: 0.00000023426949, z: 0.00000026900074}
+ m_LocalScale: {x: 1.0000001, y: 1.0000001, z: 1.0000001}
+ m_Children:
+ - {fileID: 1343741283}
+ m_Father: {fileID: 671216321}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1080567924
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 159718, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1080567925}
+ m_Layer: 0
+ m_Name: TrackingSpace
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1080567925
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 459718, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ m_GameObject: {fileID: 1080567924}
+ 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: 390448549}
+ - {fileID: 53342042}
+ - {fileID: 56120626}
+ - {fileID: 1754791342}
+ - {fileID: 1162487503}
+ - {fileID: 2098184029}
+ m_Father: {fileID: 753461666}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1162487502
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 109308, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1162487503}
+ m_Layer: 0
+ m_Name: LeftHandAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1162487503
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 482130, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ m_GameObject: {fileID: 1162487502}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1080567925}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1196414138
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000013418442184, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1196414139}
+ m_Layer: 0
+ m_Name: hands:b_l_thumb3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1196414139
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000013478150618, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1196414138}
+ m_LocalRotation: {x: 0.000000010835937, y: 0.000000105541446, z: 0.008720753, w: 0.99996203}
+ m_LocalPosition: {x: -0.026371535, y: 0.0000000039149337, z: 0.000000001525968}
+ m_LocalScale: {x: 1.0000002, y: 1.0000002, z: 1.0000001}
+ m_Children:
+ - {fileID: 800529966}
+ m_Father: {fileID: 1553253457}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1208440874
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000011109095410, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1208440875}
+ m_Layer: 0
+ m_Name: hands:b_r_middle1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1208440875
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000011985668308, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1208440874}
+ m_LocalRotation: {x: -0.03365176, y: 0.6480088, z: 0.7565946, w: 0.08072688}
+ m_LocalPosition: {x: -0.09142203, y: 0.009532631, z: 0.010838809}
+ m_LocalScale: {x: 1.0000001, y: 1.0000001, z: 1.0000001}
+ m_Children:
+ - {fileID: 1470779009}
+ m_Father: {fileID: 256016476}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1210129109
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000010529747302, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1210129110}
+ m_Layer: 0
+ m_Name: hands:b_l_ring_ignore
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1210129110
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000011977766816, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1210129109}
+ m_LocalRotation: {x: -0.000000003974666, y: -0.000000007533675, z: 0.000000010893303,
+ w: 1}
+ m_LocalPosition: {x: -0.024214901, y: -0.0000000055627396, z: 0.0000000014620534}
+ m_LocalScale: {x: 0.99999994, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1911745904}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1241509019
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000013402618928, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1241509020}
+ m_Layer: 0
+ m_Name: hands:b_r_pinky2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1241509020
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000011548096454, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1241509019}
+ m_LocalRotation: {x: 0.0000000121722445, y: 0.000000037490725, z: -0.16458228, w: 0.98636335}
+ m_LocalPosition: {x: 0.03335585, y: 0.000000428581, z: 0.00000030260418}
+ m_LocalScale: {x: 1, y: 0.99999994, z: 1}
+ m_Children:
+ - {fileID: 1850704993}
+ m_Father: {fileID: 600624810}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1343741282
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000013261444462, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1343741283}
+ m_Layer: 0
+ m_Name: hands:b_r_ring_ignore
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1343741283
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000011071277814, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1343741282}
+ m_LocalRotation: {x: 0.0000000014840815, y: -0.0000000017981829, z: 1.2272992e-10,
+ w: 1}
+ m_LocalPosition: {x: 0.024214191, y: -0.000000029371913, z: 0.0000000143947485}
+ m_LocalScale: {x: 1.0000001, y: 1, z: 1.0000001}
+ m_Children: []
+ m_Father: {fileID: 936747930}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1365922219
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1365922220}
+ m_Layer: 0
+ m_Name: hands_r_hand_world
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1365922220
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1365922219}
+ 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: 256016476}
+ m_Father: {fileID: 34790507}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &1420335878
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_RootOrder
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: _trackingOriginType
+ value: 1
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_RootGameObject: {fileID: 753461663}
+ m_IsPrefabParent: 0
+--- !u!1 &1421016109
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000011125779090, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 470598175}
+ - component: {fileID: 1421016110}
+ m_Layer: 0
+ m_Name: hand_left
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1421016110
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114000011404857786, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ m_GameObject: {fileID: 1421016109}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e53b07ad62d980a4da9fffff0b05fd2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!1 &1426033521
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000013069185110, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1426033522}
+ m_Layer: 0
+ m_Name: hands:b_l_index3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1426033522
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000011517012044, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1426033521}
+ m_LocalRotation: {x: -0.00000006855413, y: -0.00000003895668, z: -0.059595995, w: 0.99822265}
+ m_LocalPosition: {x: -0.022153001, y: -0.0000000014452477, z: 7.970192e-10}
+ m_LocalScale: {x: 0.99999976, y: 0.9999999, z: 0.99999994}
+ m_Children:
+ - {fileID: 2132552193}
+ m_Father: {fileID: 1976326465}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1436046663
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 157742, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1436046665}
+ - component: {fileID: 1436046664}
+ m_Layer: 0
+ m_Name: controller_right
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1436046664
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11477770, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ m_GameObject: {fileID: 1436046663}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 77e19ec58d4a9e844970103e5bd8946a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &1436046665
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 448722, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ m_GameObject: {fileID: 1436046663}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 30936217}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1436277363
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000012325767376, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1436277364}
+ m_Layer: 0
+ m_Name: hands:b_l_ring1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1436277364
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000013865548944, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1436277363}
+ m_LocalRotation: {x: -0.101800956, y: 0.5692993, z: 0.8152097, w: 0.031114716}
+ m_LocalPosition: {x: 0.089531735, y: 0.01271399, z: -0.0018533365}
+ m_LocalScale: {x: 1.0000001, y: 0.9999999, z: 1}
+ m_Children:
+ - {fileID: 188612934}
+ m_Father: {fileID: 313519822}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1448414925
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000012515651468, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1448414926}
+ m_Layer: 0
+ m_Name: hands:b_r_hand_ignore
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1448414926
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000010358949252, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1448414925}
+ m_LocalRotation: {x: 0.2270425, y: 0.00000013696271, z: 0.000000027668817, w: 0.9738849}
+ m_LocalPosition: {x: -0.1361133, y: 0.00000039348112, z: 0.0000007092745}
+ m_LocalScale: {x: 1.0000002, y: 1, z: 1.0000001}
+ m_Children: []
+ m_Father: {fileID: 256016476}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1470779008
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000012334489350, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1470779009}
+ m_Layer: 0
+ m_Name: hands:b_r_middle2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1470779009
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000010279714204, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1470779008}
+ m_LocalRotation: {x: 0.00000006068312, y: 0.00000001414483, z: -0.23558186, w: 0.9718545}
+ m_LocalPosition: {x: 0.045967016, y: 0.000000011164765, z: -0.00000003823086}
+ m_LocalScale: {x: 0.99999994, y: 0.99999994, z: 0.9999999}
+ m_Children:
+ - {fileID: 316040182}
+ m_Father: {fileID: 1208440875}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1553253456
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000011349760634, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1553253457}
+ m_Layer: 0
+ m_Name: hands:b_l_thumb2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1553253457
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000011106244114, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1553253456}
+ m_LocalRotation: {x: -0.000000022563794, y: -0.000000076783515, z: -0.14235, w: 0.9898164}
+ m_LocalPosition: {x: -0.03258823, y: 0.000000008250139, z: 0.0000000063271166}
+ m_LocalScale: {x: 1, y: 1, z: 0.9999999}
+ m_Children:
+ - {fileID: 1196414139}
+ m_Father: {fileID: 1601188193}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1601188192
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000014187544400, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1601188193}
+ m_Layer: 0
+ m_Name: hands:b_l_thumb1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1601188193
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000011390348006, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1601188192}
+ m_LocalRotation: {x: -0.24596234, y: -0.945037, z: 0.031994298, w: -0.2130351}
+ m_LocalPosition: {x: 0.026298413, y: -0.041470293, z: 0.020564139}
+ m_LocalScale: {x: 1.0000001, y: 1, z: 1.0000001}
+ m_Children:
+ - {fileID: 1553253457}
+ m_Father: {fileID: 313519822}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1654041717
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000012026592076, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1654041719}
+ - component: {fileID: 1654041718}
+ m_Layer: 0
+ m_Name: body
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1654041718
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114000012186362028, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ m_GameObject: {fileID: 1654041717}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: eb7a6650b6cb46545967d3b380b7396c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &1654041719
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000014100970646, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ m_GameObject: {fileID: 1654041717}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 1.6, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 30936217}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &1658856030
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_RootOrder
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114000011404857786, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ propertyPath: customPose
+ value:
+ objectReference: {fileID: 0}
+ - target: {fileID: 114000010372160784, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ propertyPath: customPose
+ value:
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: LeftHandCustomPose
+ value:
+ objectReference: {fileID: 585168899}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: RightHandCustomPose
+ value:
+ objectReference: {fileID: 1365922220}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_RootGameObject: {fileID: 30936213}
+ m_IsPrefabParent: 0
+--- !u!1 &1677342975
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000010844843470, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1677342976}
+ m_Layer: 0
+ m_Name: hands:b_r_thumb1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1677342976
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000012946508074, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1677342975}
+ m_LocalRotation: {x: -0.24596235, y: -0.945037, z: 0.031994287, w: -0.2130352}
+ m_LocalPosition: {x: -0.026297217, y: 0.041471086, z: -0.020563856}
+ m_LocalScale: {x: 1.0000002, y: 1, z: 1.0000002}
+ m_Children:
+ - {fileID: 1827566768}
+ m_Father: {fileID: 256016476}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1690781230
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000012931321476, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1690781231}
+ m_Layer: 0
+ m_Name: hands:b_r_index1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1690781231
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000011479365644, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1690781230}
+ m_LocalRotation: {x: -0.010945086, y: -0.73294145, z: -0.6609521, w: -0.16068438}
+ m_LocalPosition: {x: -0.087077975, y: 0.03509997, z: 0.0068147373}
+ m_LocalScale: {x: 1.0000002, y: 1.0000002, z: 1.0000001}
+ m_Children:
+ - {fileID: 376675011}
+ m_Father: {fileID: 256016476}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1754791341
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 168682, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1754791342}
+ m_Layer: 0
+ m_Name: TrackerAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1754791342
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 468682, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ m_GameObject: {fileID: 1754791341}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1080567925}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1827566767
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000010590504850, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1827566768}
+ m_Layer: 0
+ m_Name: hands:b_r_thumb2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1827566768
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000012527699014, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1827566767}
+ m_LocalRotation: {x: 0.0000000097368815, y: 0.00000006591119, z: -0.14235, w: 0.9898164}
+ m_LocalPosition: {x: 0.03258561, y: 0.0000027121296, z: -0.00000029114267}
+ m_LocalScale: {x: 0.99999994, y: 0.99999994, z: 0.99999994}
+ m_Children:
+ - {fileID: 665325993}
+ m_Father: {fileID: 1677342976}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1843625168
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000010482306814, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1906766866}
+ - component: {fileID: 1843625169}
+ m_Layer: 0
+ m_Name: hand_right
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1843625169
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114000010372160784, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ m_GameObject: {fileID: 1843625168}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e53b07ad62d980a4da9fffff0b05fd2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!1 &1850704992
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000011760721852, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1850704993}
+ m_Layer: 0
+ m_Name: hands:b_r_pinky3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1850704993
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000013780580014, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1850704992}
+ m_LocalRotation: {x: 5.749046e-10, y: -0.000000062709326, z: -0.046993963, w: 0.9988952}
+ m_LocalPosition: {x: 0.017418418, y: -0.0000004882774, z: -0.00000079565086}
+ m_LocalScale: {x: 0.99999994, y: 1.0000001, z: 1}
+ m_Children:
+ - {fileID: 1956390914}
+ m_Father: {fileID: 1241509020}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1903904372
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000013538305188, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1903904373}
+ m_Layer: 0
+ m_Name: hands:b_l_middle3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1903904373
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000014050872134, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1903904372}
+ m_LocalRotation: {x: -0.000000028111124, y: -0.000000020147448, z: -0.06577558,
+ w: 0.99783444}
+ m_LocalPosition: {x: -0.029590594, y: -0.000000002521893, z: 0.000000006982977}
+ m_LocalScale: {x: 0.99999994, y: 0.9999999, z: 1}
+ m_Children:
+ - {fileID: 491546332}
+ m_Father: {fileID: 239467253}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &1906766866
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000011212216358, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1658856030}
+ m_GameObject: {fileID: 1843625168}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 34790507}
+ m_Father: {fileID: 30936217}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1911745903
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000013162173792, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1911745904}
+ m_Layer: 0
+ m_Name: hands:b_l_ring3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1911745904
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000012482291932, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1911745903}
+ m_LocalRotation: {x: -0.00000002929157, y: -0.000000028796071, z: -0.08394354, w: 0.9964705}
+ m_LocalPosition: {x: -0.02577529, y: -0.000000009610838, z: 6.700984e-11}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1210129110}
+ m_Father: {fileID: 188612934}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1924116397
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000012660963546, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1924116398}
+ m_Layer: 0
+ m_Name: hands:b_l_pinky0
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1924116398
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000011221533814, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1924116397}
+ m_LocalRotation: {x: -0.46932158, y: -0.083111465, z: 0.086728446, w: 0.8748188}
+ m_LocalPosition: {x: 0.03127151, y: 0.019068034, z: 0.01150759}
+ m_LocalScale: {x: 1, y: 0.9999998, z: 1}
+ m_Children:
+ - {fileID: 56595421}
+ m_Father: {fileID: 313519822}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1934855144
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000011317487948, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1934855145}
+ m_Layer: 0
+ m_Name: hands:b_l_pinky3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1934855145
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000010957509028, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1934855144}
+ m_LocalRotation: {x: -0.00000003786612, y: -0.000000019554271, z: -0.046994086,
+ w: 0.99889517}
+ m_LocalPosition: {x: -0.017418226, y: 1.6851232e-10, z: 0.0000000028433322}
+ m_LocalScale: {x: 0.99999994, y: 0.99999994, z: 1}
+ m_Children:
+ - {fileID: 363627944}
+ m_Father: {fileID: 136091887}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1956390913
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000013571305894, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1956390914}
+ m_Layer: 0
+ m_Name: hands:b_r_pinky_ignore
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1956390914
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000011129579048, guid: 1c855b4191df5b34881d54b2ecbd9599,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1956390913}
+ m_LocalRotation: {x: 0.000000002543885, y: -0.000000019746642, z: -0.0000000045765707,
+ w: 1}
+ m_LocalPosition: {x: 0.019441077, y: 0.00000018885824, z: 0.00000068496325}
+ m_LocalScale: {x: 1, y: 0.99999994, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1850704993}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1976326464
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000013780635352, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1976326465}
+ m_Layer: 0
+ m_Name: hands:b_l_index2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1976326465
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000012632991036, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1976326464}
+ m_LocalRotation: {x: 0.00000009011916, y: -0.000000039812484, z: -0.1862468, w: 0.98250306}
+ m_LocalPosition: {x: -0.04157472, y: 2.9479105e-10, z: 0.0000000031051308}
+ m_LocalScale: {x: 1.0000001, y: 1.0000001, z: 1}
+ m_Children:
+ - {fileID: 1426033522}
+ m_Father: {fileID: 870347746}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2098184028
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 113768, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 2098184029}
+ m_Layer: 0
+ m_Name: RightHandAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2098184029
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 487254, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1420335878}
+ m_GameObject: {fileID: 2098184028}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1080567925}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2132552192
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000011846866994, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 2132552193}
+ m_Layer: 0
+ m_Name: hands:b_l_index_ignore
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2132552193
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000011988422824, guid: c72434349284925498bb2d7214b00161,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2132552192}
+ m_LocalRotation: {x: 0.000000007592371, y: 0.0000000031128744, z: -0.0000000021318365,
+ w: 1}
+ m_LocalPosition: {x: -0.029121812, y: -0.000000009164141, z: 0.0000000021545208}
+ m_LocalScale: {x: 1.0000001, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1426033522}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/Assets/Oculus/Avatar/Samples/GripPoses/GripPoses.unity.meta b/Assets/Oculus/Avatar/Samples/GripPoses/GripPoses.unity.meta
new file mode 100644
index 0000000..0993774
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/GripPoses/GripPoses.unity.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 697c6df5e1eddad40b634d311b0bb2e5
+timeCreated: 1477966491
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/GripPoses/Scripts.meta b/Assets/Oculus/Avatar/Samples/GripPoses/Scripts.meta
new file mode 100644
index 0000000..1d671f8
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/GripPoses/Scripts.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 85678699140c6c3429a87f4d679b1a17
+folderAsset: yes
+timeCreated: 1477957292
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/GripPoses/Scripts/PoseEditHelper.cs b/Assets/Oculus/Avatar/Samples/GripPoses/Scripts/PoseEditHelper.cs
new file mode 100644
index 0000000..f00ee91
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/GripPoses/Scripts/PoseEditHelper.cs
@@ -0,0 +1,31 @@
+using UnityEngine;
+using System.Collections;
+using System;
+
+public class PoseEditHelper : MonoBehaviour {
+
+ public Transform poseRoot;
+
+ void OnDrawGizmos()
+ {
+ if (poseRoot != null)
+ {
+ DrawJoints(poseRoot);
+ }
+ }
+
+ private void DrawJoints(Transform joint)
+ {
+ Gizmos.DrawWireSphere(joint.position, 0.005f);
+ for (int i = 0; i < joint.childCount; ++i)
+ {
+ Transform child = joint.GetChild(i);
+ if (child.name.EndsWith("_grip") || child.name.EndsWith("hand_ignore"))
+ {
+ continue;
+ }
+ Gizmos.DrawLine(joint.position, child.position);
+ DrawJoints(child);
+ }
+ }
+}
diff --git a/Assets/Oculus/Avatar/Samples/GripPoses/Scripts/PoseEditHelper.cs.meta b/Assets/Oculus/Avatar/Samples/GripPoses/Scripts/PoseEditHelper.cs.meta
new file mode 100644
index 0000000..15ec7ac
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/GripPoses/Scripts/PoseEditHelper.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 6bc5b4ba964e02b4ea773b2aaca7dc67
+timeCreated: 1477957304
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/LocalAvatar.meta b/Assets/Oculus/Avatar/Samples/LocalAvatar.meta
new file mode 100644
index 0000000..20dd2bc
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/LocalAvatar.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 2883b756c033a864ca988b3f522f3339
+folderAsset: yes
+timeCreated: 1467313725
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/LocalAvatar/LocalAvatar.unity b/Assets/Oculus/Avatar/Samples/LocalAvatar/LocalAvatar.unity
new file mode 100644
index 0000000..2ad6290
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/LocalAvatar/LocalAvatar.unity
@@ -0,0 +1,501 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+SceneSettings:
+ m_ObjectHideFlags: 0
+ m_PVSData:
+ m_PVSObjectsArray: []
+ m_PVSPortalsArray: []
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 7
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0.18053587, g: 0.22601774, b: 0.30718702, a: 1}
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 7
+ m_GIWorkflowMode: 0
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_TemporalCoherenceThreshold: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 1
+ m_LightmapEditorSettings:
+ serializedVersion: 4
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_TextureWidth: 1024
+ m_TextureHeight: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 0
+ m_CompAOExponentDirect: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_DirectLightInLightProbes: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 1024
+ m_ReflectionCompression: 2
+ m_LightingDataAsset: {fileID: 0}
+ m_RuntimeCPUUsage: 25
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ accuratePlacement: 0
+ minRegionArea: 2
+ cellSize: 0.16666667
+ manualCellSize: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!4 &369561663 stripped
+Transform:
+ m_PrefabParentObject: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 395836775}
+--- !u!1001 &395836775
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 1310461517}
+ m_Modifications:
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: -0.00000016292068
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_Name
+ value: LittleAvatar
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.x
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: -180
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.y
+ value: 0.25
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.z
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowThirdPerson
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowFirstPerson
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents:
+ - {fileID: 8254050, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_IsPrefabParent: 0
+--- !u!1 &957641525
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 957641529}
+ - 33: {fileID: 957641528}
+ - 65: {fileID: 957641527}
+ - 23: {fileID: 957641526}
+ m_Layer: 0
+ m_Name: MediumPedestal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 4294967295
+ m_IsActive: 1
+--- !u!23 &957641526
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 957641525}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_SubsetIndices:
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedWireframeHidden: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+--- !u!65 &957641527
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 957641525}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &957641528
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 957641525}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &957641529
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 957641525}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: -2, z: 0}
+ m_LocalScale: {x: 2, y: 4, z: 2}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+--- !u!1001 &1239677853
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: -0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_RootOrder
+ value: 3
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalScale.z
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: _trackingOriginType
+ value: 1
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_IsPrefabParent: 0
+--- !u!1 &1310461516
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 1310461517}
+ - 33: {fileID: 1310461520}
+ - 65: {fileID: 1310461519}
+ - 23: {fileID: 1310461518}
+ m_Layer: 0
+ m_Name: LittlePedestal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1310461517
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1310461516}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.5, z: 0.5}
+ m_LocalScale: {x: 0.5, y: 1, z: 0.5}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_Children:
+ - {fileID: 369561663}
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+--- !u!23 &1310461518
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1310461516}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_SubsetIndices:
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedWireframeHidden: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+--- !u!65 &1310461519
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1310461516}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &1310461520
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1310461516}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1658970730
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 1658970732}
+ - 108: {fileID: 1658970731}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &1658970731
+Light:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1658970730}
+ m_Enabled: 1
+ serializedVersion: 7
+ m_Type: 1
+ m_Color: {r: 0.5955882, g: 0.5955882, b: 0.5955882, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_Lightmapping: 4
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &1658970732
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1658970730}
+ m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+--- !u!1001 &2053404217
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: -0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_RootOrder
+ value: 4
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.z
+ value: 1
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_IsPrefabParent: 0
diff --git a/Assets/Oculus/Avatar/Samples/LocalAvatar/LocalAvatar.unity.meta b/Assets/Oculus/Avatar/Samples/LocalAvatar/LocalAvatar.unity.meta
new file mode 100644
index 0000000..8733076
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/LocalAvatar/LocalAvatar.unity.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c65ef87480e70eb43931036c9c66d08d
+timeCreated: 1466730185
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/RemoteLoopback.meta b/Assets/Oculus/Avatar/Samples/RemoteLoopback.meta
new file mode 100644
index 0000000..a724a74
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/RemoteLoopback.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: f26892c9951b6f54c82a5f1bf34e8d8a
+folderAsset: yes
+timeCreated: 1468000039
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/RemoteLoopback/RemoteLoopback.unity b/Assets/Oculus/Avatar/Samples/RemoteLoopback/RemoteLoopback.unity
new file mode 100644
index 0000000..e90f4e1
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/RemoteLoopback/RemoteLoopback.unity
@@ -0,0 +1,2920 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 8
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_GIWorkflowMode: 0
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_TemporalCoherenceThreshold: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 1
+ m_LightmapEditorSettings:
+ serializedVersion: 8
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_TextureWidth: 1024
+ m_TextureHeight: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 0
+ m_CompAOExponentDirect: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 1024
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 1
+ m_BakeBackend: 0
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 500
+ m_PVRBounces: 2
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVRFilteringMode: 0
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_LightingDataAsset: {fileID: 0}
+ m_ShadowMaskMode: 2
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &17753369
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1098047352992398, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 17753371}
+ - component: {fileID: 17753370}
+ m_Layer: 0
+ m_Name: DefaultBodyMaterialManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &17753370
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114949324920430652, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 17753369}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a139d83bf6796734db220df8a5bfacbd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ DiffuseFallbacks:
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: b3e87b1024f5fa8408d004b398e7b0c0, type: 3}
+ NormalFallbacks:
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 22a046c12fc7f3c4d98a98add109fa96, type: 3}
+ BodyColorTints:
+ - {r: 0.9764706, g: 0.8509804, b: 0.6862745, a: 1}
+ - {r: 1, g: 0.9529412, b: 0.92156863, a: 1}
+ - {r: 0.9764706, g: 0.9019608, b: 0.6745098, a: 1}
+ - {r: 0.7647059, g: 0.6039216, b: 0.2509804, a: 1}
+ - {r: 0.45490196, g: 0.1882353, b: 0, a: 1}
+ - {r: 0.22352941, g: 0.023529412, b: 0.011764706, a: 1}
+ LocalAvatarConfig:
+ ComponentMaterialProperties:
+ - TypeIndex: 0
+ Color: {r: 1, g: 0.86, b: 0.77, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.3
+ RimIntensity: 5
+ BacklightIntensity: 1
+ ReflectionIntensity: 0
+ - TypeIndex: 1
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.1
+ RimIntensity: 2
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.3
+ - TypeIndex: 2
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0
+ RimIntensity: 2.84
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.4
+ - TypeIndex: 3
+ Color: {r: 0.6235, g: 0.4627, b: 0.3412, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ - TypeIndex: 4
+ Color: {r: -5.3487954e+9, g: 771.1758, b: -5.6686517e+23, a: 4.9667446e-34}
+ Textures:
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ MaterialPropertyBlock:
+ Colors:
+ - {x: 1, y: 0.86, z: 0.77, w: 1}
+ - {x: 1, y: 1, z: 1, w: 1}
+ - {x: 1, y: 1, z: 1, w: 1}
+ - {x: 0.6235, y: 0.4627, z: 0.3412, w: 1}
+ - {x: -0.025753247, y: -2.0311036e-13, z: -6.2685677e-31, w: -2.0021067e+22}
+ DiffuseIntensities:
+ - 0.3
+ - 0.1
+ - 0
+ - 0.15
+ - 0.15
+ RimIntensities:
+ - 5
+ - 2
+ - 2.84
+ - 4
+ - 4
+ BacklightIntensities:
+ - 1
+ - 0.7
+ - 0.7
+ - 0.7
+ - 0.7
+ ReflectionIntensities:
+ - 0
+ - 0.3
+ - 0.4
+ - 0
+ - 0
+ DefaultAvatarConfig:
+ ComponentMaterialProperties:
+ - TypeIndex: 0
+ Color: {r: 1, g: 0.86, b: 0.77, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.3
+ RimIntensity: 5
+ BacklightIntensity: 1
+ ReflectionIntensity: 0
+ - TypeIndex: 1
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.1
+ RimIntensity: 2
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.3
+ - TypeIndex: 2
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0
+ RimIntensity: 2.84
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.4
+ - TypeIndex: 3
+ Color: {r: 0.6235, g: 0.4627, b: 0.3412, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ - TypeIndex: 4
+ Color: {r: -5.3487954e+9, g: 771.1758, b: -5.6686517e+23, a: 4.9667446e-34}
+ Textures:
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ MaterialPropertyBlock:
+ Colors:
+ - {x: 1, y: 0.86, z: 0.77, w: 1}
+ - {x: 1, y: 1, z: 1, w: 1}
+ - {x: 1, y: 1, z: 1, w: 1}
+ - {x: 0.6235, y: 0.4627, z: 0.3412, w: 1}
+ - {x: -0.025753247, y: -2.0311036e-13, z: -6.2685677e-31, w: -2.0021067e+22}
+ DiffuseIntensities:
+ - 0.3
+ - 0.1
+ - 0
+ - 0.15
+ - 0.15
+ RimIntensities:
+ - 5
+ - 2
+ - 2.84
+ - 4
+ - 4
+ BacklightIntensities:
+ - 1
+ - 0.7
+ - 0.7
+ - 0.7
+ - 0.7
+ ReflectionIntensities:
+ - 0
+ - 0.3
+ - 0.4
+ - 0
+ - 0
+--- !u!4 &17753371
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4581494204247758, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 17753369}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 294178692}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &131845959
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 157742, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 131845961}
+ - component: {fileID: 131845960}
+ m_Layer: 0
+ m_Name: controller_right
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &131845960
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11477770, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 131845959}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 77e19ec58d4a9e844970103e5bd8946a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &131845961
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 448722, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 131845959}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 294178692}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &138730797
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 168682, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 138730798}
+ m_Layer: 0
+ m_Name: TrackerAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &138730798
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 468682, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ m_GameObject: {fileID: 138730797}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1013109275}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &150279911
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1231602751420816, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 150279913}
+ - component: {fileID: 150279912}
+ m_Layer: 0
+ m_Name: DefaultHandMaterialManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &150279912
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114029231360713414, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 150279911}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a139d83bf6796734db220df8a5bfacbd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ DiffuseFallbacks:
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: b3e87b1024f5fa8408d004b398e7b0c0, type: 3}
+ NormalFallbacks:
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 22a046c12fc7f3c4d98a98add109fa96, type: 3}
+ BodyColorTints:
+ - {r: 0.9764706, g: 0.8509804, b: 0.6862745, a: 1}
+ - {r: 1, g: 0.9529412, b: 0.92156863, a: 1}
+ - {r: 0.9764706, g: 0.9019608, b: 0.6745098, a: 1}
+ - {r: 0.7647059, g: 0.6039216, b: 0.2509804, a: 1}
+ - {r: 0.45490196, g: 0.1882353, b: 0, a: 1}
+ - {r: 0.22352941, g: 0.023529412, b: 0.011764706, a: 1}
+ LocalAvatarConfig:
+ ComponentMaterialProperties: []
+ MaterialPropertyBlock:
+ Colors: []
+ DiffuseIntensities: []
+ RimIntensities: []
+ BacklightIntensities: []
+ ReflectionIntensities: []
+ DefaultAvatarConfig:
+ ComponentMaterialProperties:
+ - TypeIndex: 0
+ Color: {r: 1, g: 0.9529412, b: 0.92156863, a: 1}
+ Textures: []
+ DiffuseIntensity: 0.301
+ RimIntensity: 5
+ BacklightIntensity: 1
+ ReflectionIntensity: 0
+ - TypeIndex: 1
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures: []
+ DiffuseIntensity: 0.1
+ RimIntensity: 2
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.3
+ - TypeIndex: 2
+ Color: {r: 0.80784315, g: 0.80784315, b: 0.80784315, a: 1}
+ Textures: []
+ DiffuseIntensity: 0
+ RimIntensity: 2.84
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.4
+ - TypeIndex: 3
+ Color: {r: 0.22352941, g: 0.11372549, b: 0, a: 1}
+ Textures: []
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ - TypeIndex: 4
+ Color: {r: 0.22352941, g: 0.023529412, b: 0.011764706, a: 1}
+ Textures: []
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ MaterialPropertyBlock:
+ Colors:
+ - {x: 0, y: 0, z: 0, w: 0}
+ - {x: 0, y: 0, z: 0, w: 0}
+ - {x: 0, y: 0, z: 0, w: 0}
+ - {x: 0, y: 0, z: 0, w: 0}
+ - {x: 0, y: 0, z: 0, w: 0}
+ DiffuseIntensities:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ RimIntensities:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ BacklightIntensities:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ ReflectionIntensities:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+--- !u!4 &150279913
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4468369968689664, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 150279911}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1202279117}
+ m_RootOrder: 8
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &171521067
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 113768, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 171521068}
+ m_Layer: 0
+ m_Name: RightHandAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &171521068
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 487254, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ m_GameObject: {fileID: 171521067}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 397287355}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &175213101
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 175213102}
+ - component: {fileID: 175213103}
+ m_Layer: 0
+ m_Name: RightEyeAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &175213102
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ m_GameObject: {fileID: 175213101}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 397287355}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &175213103
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 20000010189485334, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ m_GameObject: {fileID: 175213101}
+ m_Enabled: 0
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 2
+ m_HDR: 0
+ m_AllowMSAA: 1
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+ m_StereoMirrorMode: 0
+--- !u!1 &197247450
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000010482306814, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 197247452}
+ - component: {fileID: 197247451}
+ m_Layer: 0
+ m_Name: hand_right
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &197247451
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114000010372160784, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 197247450}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e53b07ad62d980a4da9fffff0b05fd2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &197247452
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000011212216358, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 197247450}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 294178692}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &268270709
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100002, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 268270710}
+ - component: {fileID: 268270712}
+ - component: {fileID: 268270711}
+ m_Layer: 0
+ m_Name: CenterEyeAnchor
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &268270710
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400002, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ m_GameObject: {fileID: 268270709}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1013109275}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &268270711
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2037080, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ m_GameObject: {fileID: 268270709}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.1
+ far clip plane: 1000
+ field of view: 90
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 0
+ m_AllowMSAA: 1
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+ m_StereoMirrorMode: 0
+--- !u!81 &268270712
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 8100000, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ m_GameObject: {fileID: 268270709}
+ m_Enabled: 1
+--- !u!1 &294178688
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 294178692}
+ - component: {fileID: 294178691}
+ - component: {fileID: 294178690}
+ - component: {fileID: 294178689}
+ m_Layer: 0
+ m_Name: LocalAvatar (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &294178689
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11441414, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 294178688}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: ac27124318cf8e84aa7350c2ac1cdb80, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Mode: 0
+--- !u!82 &294178690
+AudioSource:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 8254050, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 294178688}
+ m_Enabled: 1
+ serializedVersion: 4
+ OutputAudioMixerGroup: {fileID: 0}
+ m_audioClip: {fileID: 0}
+ m_PlayOnAwake: 1
+ m_Volume: 1
+ m_Pitch: 1
+ Loop: 0
+ Mute: 0
+ Spatialize: 0
+ SpatializePostEffects: 0
+ Priority: 128
+ DopplerLevel: 1
+ MinDistance: 1
+ MaxDistance: 500
+ Pan2D: 0
+ rolloffMode: 0
+ BypassEffects: 0
+ BypassListenerEffects: 0
+ BypassReverbZones: 0
+ rolloffCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ - serializedVersion: 2
+ time: 1
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ panLevelCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ spreadCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ reverbZoneMixCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+--- !u!114 &294178691
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 294178688}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 00f3402a2ea5bff4880c0313515240cd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ DefaultBodyMaterialManager: {fileID: 17753370}
+ DefaultHandMaterialManager: {fileID: 373740623}
+ Driver: {fileID: 294178689}
+ Base: {fileID: 1329503002}
+ Body: {fileID: 1437741096}
+ ControllerLeft: {fileID: 1358492916}
+ ControllerRight: {fileID: 131845960}
+ HandLeft: {fileID: 1617907520}
+ HandRight: {fileID: 197247451}
+ RecordPackets: 0
+ UseSDKPackets: 1
+ StartWithControllers: 0
+ FirstPersonLayer:
+ layerIndex: 0
+ ThirdPersonLayer:
+ layerIndex: 0
+ ShowFirstPerson: 0
+ ShowThirdPerson: 1
+ Capabilities: -1
+ SurfaceShader: {fileID: 4800000, guid: 73f67c4e7bf718b4385aa6b1f8a06591, type: 3}
+ SurfaceShaderSelfOccluding: {fileID: 4800000, guid: 69f342b79d37541489919a19cfd8a924,
+ type: 3}
+ SurfaceShaderPBS: {fileID: 4800000, guid: 5e52aa58207bbf24d8eb8ec969e9ae88, type: 3}
+ SurfaceShaderPBSV2Single: {fileID: 4800000, guid: c26fc51e445dcfd4db09305d861dc11c,
+ type: 3}
+ SurfaceShaderPBSV2Combined: {fileID: 4800000, guid: 37d2b8298f61cd2469465fc36108675d,
+ type: 3}
+ SurfaceShaderPBSV2Simple: {fileID: 4800000, guid: 36b8b481cf607814a8cec318f0148d63,
+ type: 3}
+ SurfaceShaderPBSV2Loading: {fileID: 4800000, guid: 822f5e641dc5dd54ca9555b727b3277f,
+ type: 3}
+ oculusUserID: 1727176100935614
+ LeftHandCustomPose: {fileID: 0}
+ RightHandCustomPose: {fileID: 0}
+ PacketSettings:
+ UpdateRate: 0.033333335
+ VoiceAmplitude: 0
+ EnableMouthVertexAnimation: 0
+--- !u!4 &294178692
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 294178688}
+ m_LocalRotation: {x: 0, y: 1, z: 0, w: 0}
+ m_LocalPosition: {x: 0, y: 0, z: 0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1329503003}
+ - {fileID: 1437741097}
+ - {fileID: 1617907521}
+ - {fileID: 1358492917}
+ - {fileID: 197247452}
+ - {fileID: 131845961}
+ - {fileID: 17753371}
+ - {fileID: 373740624}
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
+--- !u!1 &308398286
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100006, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 308398287}
+ - component: {fileID: 308398288}
+ m_Layer: 0
+ m_Name: LeftEyeAnchor
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &308398287
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400006, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ m_GameObject: {fileID: 308398286}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1013109275}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &308398288
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 20000012175207052, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ m_GameObject: {fileID: 308398286}
+ m_Enabled: 0
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 1
+ m_HDR: 0
+ m_AllowMSAA: 1
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+ m_StereoMirrorMode: 0
+--- !u!1001 &344808318
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 1202279117}
+ m_Modifications:
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_RootOrder
+ value: 3
+ objectReference: {fileID: 0}
+ - target: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: usePositionTracking
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: _trackingOriginType
+ value: 1
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_RootGameObject: {fileID: 777067216}
+ m_IsPrefabParent: 0
+--- !u!1 &373740622
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1231602751420816, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 373740624}
+ - component: {fileID: 373740623}
+ m_Layer: 0
+ m_Name: DefaultHandMaterialManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &373740623
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114029231360713414, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 373740622}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a139d83bf6796734db220df8a5bfacbd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ DiffuseFallbacks:
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: b3e87b1024f5fa8408d004b398e7b0c0, type: 3}
+ NormalFallbacks:
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 22a046c12fc7f3c4d98a98add109fa96, type: 3}
+ BodyColorTints:
+ - {r: 0.9764706, g: 0.8509804, b: 0.6862745, a: 1}
+ - {r: 1, g: 0.9529412, b: 0.92156863, a: 1}
+ - {r: 0.9764706, g: 0.9019608, b: 0.6745098, a: 1}
+ - {r: 0.7647059, g: 0.6039216, b: 0.2509804, a: 1}
+ - {r: 0.45490196, g: 0.1882353, b: 0, a: 1}
+ - {r: 0.22352941, g: 0.023529412, b: 0.011764706, a: 1}
+ LocalAvatarConfig:
+ ComponentMaterialProperties: []
+ MaterialPropertyBlock:
+ Colors: []
+ DiffuseIntensities: []
+ RimIntensities: []
+ BacklightIntensities: []
+ ReflectionIntensities: []
+ DefaultAvatarConfig:
+ ComponentMaterialProperties:
+ - TypeIndex: 0
+ Color: {r: 1, g: 0.9529412, b: 0.92156863, a: 1}
+ Textures: []
+ DiffuseIntensity: 0.301
+ RimIntensity: 5
+ BacklightIntensity: 1
+ ReflectionIntensity: 0
+ - TypeIndex: 1
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures: []
+ DiffuseIntensity: 0.1
+ RimIntensity: 2
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.3
+ - TypeIndex: 2
+ Color: {r: 0.80784315, g: 0.80784315, b: 0.80784315, a: 1}
+ Textures: []
+ DiffuseIntensity: 0
+ RimIntensity: 2.84
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.4
+ - TypeIndex: 3
+ Color: {r: 0.22352941, g: 0.11372549, b: 0, a: 1}
+ Textures: []
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ - TypeIndex: 4
+ Color: {r: 0.22352941, g: 0.023529412, b: 0.011764706, a: 1}
+ Textures: []
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ MaterialPropertyBlock:
+ Colors:
+ - {x: 0, y: 0, z: 0, w: 0}
+ - {x: 0, y: 0, z: 0, w: 0}
+ - {x: 0, y: 0, z: 0, w: 0}
+ - {x: 0, y: 0, z: 0, w: 0}
+ - {x: 0, y: 0, z: 0, w: 0}
+ DiffuseIntensities:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ RimIntensities:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ BacklightIntensities:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ ReflectionIntensities:
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+--- !u!4 &373740624
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4468369968689664, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 373740622}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 294178692}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &391167544
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 391167545}
+ - component: {fileID: 391167546}
+ m_Layer: 0
+ m_Name: RightEyeAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &391167545
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ m_GameObject: {fileID: 391167544}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1013109275}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &391167546
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 20000010189485334, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ m_GameObject: {fileID: 391167544}
+ m_Enabled: 0
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 2
+ m_HDR: 0
+ m_AllowMSAA: 1
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+ m_StereoMirrorMode: 0
+--- !u!1 &397287354
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 159718, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 397287355}
+ m_Layer: 0
+ m_Name: TrackingSpace
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &397287355
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 459718, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ m_GameObject: {fileID: 397287354}
+ 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: 1892901576}
+ - {fileID: 1227517733}
+ - {fileID: 175213102}
+ - {fileID: 1934788895}
+ - {fileID: 467948675}
+ - {fileID: 171521068}
+ m_Father: {fileID: 1826797345}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &467948674
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 109308, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 467948675}
+ m_Layer: 0
+ m_Name: LeftHandAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &467948675
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 482130, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ m_GameObject: {fileID: 467948674}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 397287355}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &562909166
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000010910743596, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 562909168}
+ - component: {fileID: 562909167}
+ m_Layer: 0
+ m_Name: base
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &562909167
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114000010884708534, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 562909166}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a0e33623ec5372748b5703f61a4df82d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &562909168
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000010416372058, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 562909166}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1202279117}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &598885955
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 184120, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 598885957}
+ - component: {fileID: 598885956}
+ m_Layer: 0
+ m_Name: controller_left
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &598885956
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11405130, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 598885955}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 77e19ec58d4a9e844970103e5bd8946a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &598885957
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400938, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 598885955}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1202279117}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &673621216
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 109308, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 673621217}
+ m_Layer: 0
+ m_Name: LeftHandAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &673621217
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 482130, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ m_GameObject: {fileID: 673621216}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1013109275}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &682638372
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 157742, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 682638374}
+ - component: {fileID: 682638373}
+ m_Layer: 0
+ m_Name: controller_right
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &682638373
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11477770, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 682638372}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 77e19ec58d4a9e844970103e5bd8946a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &682638374
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 448722, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 682638372}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1202279117}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &777067216
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 777067217}
+ - component: {fileID: 777067219}
+ - component: {fileID: 777067218}
+ m_Layer: 0
+ m_Name: OVRCameraRig
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &777067217
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ m_GameObject: {fileID: 777067216}
+ 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: 1013109275}
+ m_Father: {fileID: 1202279117}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &777067218
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ m_GameObject: {fileID: 777067216}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7e933e81d3c20c74ea6fdc708a67e3a5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ queueAhead: 1
+ useRecommendedMSAALevel: 0
+ enableAdaptiveResolution: 0
+ minRenderScale: 0.7
+ maxRenderScale: 1
+ expandMixedRealityCapturePropertySheet: 0
+ enableMixedReality: 0
+ compositionMethod: 0
+ extraHiddenLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ capturingCameraDevice: 0
+ flipCameraFrameHorizontally: 0
+ flipCameraFrameVertically: 0
+ handPoseStateLatency: 0
+ sandwichCompositionRenderLatency: 0
+ sandwichCompositionBufferedFrames: 8
+ chromaKeyColor: {r: 0, g: 1, b: 0, a: 1}
+ chromaKeySimilarity: 0.6
+ chromaKeySmoothRange: 0.03
+ chromaKeySpillRange: 0.06
+ useDynamicLighting: 0
+ depthQuality: 1
+ dynamicLightingSmoothFactor: 8
+ dynamicLightingDepthVariationClampingValue: 0.001
+ virtualGreenScreenType: 0
+ virtualGreenScreenTopY: 10
+ virtualGreenScreenBottomY: -10
+ virtualGreenScreenApplyDepthCulling: 0
+ virtualGreenScreenDepthTolerance: 0.2
+ _trackingOriginType: 1
+ usePositionTracking: 1
+ useRotationTracking: 1
+ useIPDInPositionTracking: 1
+ resetTrackerOnLoad: 0
+--- !u!114 &777067219
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11400010, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ m_GameObject: {fileID: 777067216}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: df9f338034892c44ebb62d97894772f1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ usePerEyeCameras: 0
+ useFixedUpdateForTracking: 0
+--- !u!1 &957641525
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 957641529}
+ - component: {fileID: 957641528}
+ - component: {fileID: 957641527}
+ - component: {fileID: 957641526}
+ m_Layer: 0
+ m_Name: Floor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 4294967295
+ m_IsActive: 1
+--- !u!23 &957641526
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 957641525}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!65 &957641527
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 957641525}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &957641528
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 957641525}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &957641529
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 957641525}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.5, z: 0}
+ m_LocalScale: {x: 10, y: 1, z: 10}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &959241969
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_RootOrder
+ value: 3
+ objectReference: {fileID: 0}
+ - target: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_Name
+ value: LocalAvatar (1)
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: oculusUserID
+ value: 1727176100935614
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 180
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowFirstPerson
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: ShowThirdPerson
+ value: 1
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_RootGameObject: {fileID: 294178688}
+ m_IsPrefabParent: 0
+--- !u!1 &960813540
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1098047352992398, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 960813542}
+ - component: {fileID: 960813541}
+ m_Layer: 0
+ m_Name: DefaultBodyMaterialManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &960813541
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114949324920430652, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 960813540}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a139d83bf6796734db220df8a5bfacbd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ DiffuseFallbacks:
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: b3e87b1024f5fa8408d004b398e7b0c0, type: 3}
+ NormalFallbacks:
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 22a046c12fc7f3c4d98a98add109fa96, type: 3}
+ BodyColorTints:
+ - {r: 0.9764706, g: 0.8509804, b: 0.6862745, a: 1}
+ - {r: 1, g: 0.9529412, b: 0.92156863, a: 1}
+ - {r: 0.9764706, g: 0.9019608, b: 0.6745098, a: 1}
+ - {r: 0.7647059, g: 0.6039216, b: 0.2509804, a: 1}
+ - {r: 0.45490196, g: 0.1882353, b: 0, a: 1}
+ - {r: 0.22352941, g: 0.023529412, b: 0.011764706, a: 1}
+ LocalAvatarConfig:
+ ComponentMaterialProperties:
+ - TypeIndex: 0
+ Color: {r: 1, g: 0.86, b: 0.77, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.3
+ RimIntensity: 5
+ BacklightIntensity: 1
+ ReflectionIntensity: 0
+ - TypeIndex: 1
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.1
+ RimIntensity: 2
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.3
+ - TypeIndex: 2
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0
+ RimIntensity: 2.84
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.4
+ - TypeIndex: 3
+ Color: {r: 0.6235, g: 0.4627, b: 0.3412, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ - TypeIndex: 4
+ Color: {r: -5.3487954e+9, g: 771.1758, b: -5.6686517e+23, a: 4.9667446e-34}
+ Textures:
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ MaterialPropertyBlock:
+ Colors:
+ - {x: 1, y: 0.86, z: 0.77, w: 1}
+ - {x: 1, y: 1, z: 1, w: 1}
+ - {x: 1, y: 1, z: 1, w: 1}
+ - {x: 0.6235, y: 0.4627, z: 0.3412, w: 1}
+ - {x: -0.025753247, y: -2.0311036e-13, z: -6.2685677e-31, w: -2.0021067e+22}
+ DiffuseIntensities:
+ - 0.3
+ - 0.1
+ - 0
+ - 0.15
+ - 0.15
+ RimIntensities:
+ - 5
+ - 2
+ - 2.84
+ - 4
+ - 4
+ BacklightIntensities:
+ - 1
+ - 0.7
+ - 0.7
+ - 0.7
+ - 0.7
+ ReflectionIntensities:
+ - 0
+ - 0.3
+ - 0.4
+ - 0
+ - 0
+ DefaultAvatarConfig:
+ ComponentMaterialProperties:
+ - TypeIndex: 0
+ Color: {r: 1, g: 0.86, b: 0.77, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.3
+ RimIntensity: 5
+ BacklightIntensity: 1
+ ReflectionIntensity: 0
+ - TypeIndex: 1
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.1
+ RimIntensity: 2
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.3
+ - TypeIndex: 2
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0
+ RimIntensity: 2.84
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0.4
+ - TypeIndex: 3
+ Color: {r: 0.6235, g: 0.4627, b: 0.3412, a: 1}
+ Textures:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ - TypeIndex: 4
+ Color: {r: -5.3487954e+9, g: 771.1758, b: -5.6686517e+23, a: 4.9667446e-34}
+ Textures:
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3}
+ - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3}
+ DiffuseIntensity: 0.15
+ RimIntensity: 4
+ BacklightIntensity: 0.7
+ ReflectionIntensity: 0
+ MaterialPropertyBlock:
+ Colors:
+ - {x: 1, y: 0.86, z: 0.77, w: 1}
+ - {x: 1, y: 1, z: 1, w: 1}
+ - {x: 1, y: 1, z: 1, w: 1}
+ - {x: 0.6235, y: 0.4627, z: 0.3412, w: 1}
+ - {x: -0.025753247, y: -2.0311036e-13, z: -6.2685677e-31, w: -2.0021067e+22}
+ DiffuseIntensities:
+ - 0.3
+ - 0.1
+ - 0
+ - 0.15
+ - 0.15
+ RimIntensities:
+ - 5
+ - 2
+ - 2.84
+ - 4
+ - 4
+ BacklightIntensities:
+ - 1
+ - 0.7
+ - 0.7
+ - 0.7
+ - 0.7
+ ReflectionIntensities:
+ - 0
+ - 0.3
+ - 0.4
+ - 0
+ - 0
+--- !u!4 &960813542
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4581494204247758, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 960813540}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1202279117}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1013109274
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 159718, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1013109275}
+ m_Layer: 0
+ m_Name: TrackingSpace
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1013109275
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 459718, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ m_GameObject: {fileID: 1013109274}
+ 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: 308398287}
+ - {fileID: 268270710}
+ - {fileID: 391167545}
+ - {fileID: 138730798}
+ - {fileID: 673621217}
+ - {fileID: 1663001939}
+ m_Father: {fileID: 777067217}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1174003223
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1202279117}
+ - component: {fileID: 1174003226}
+ - component: {fileID: 1174003225}
+ - component: {fileID: 1174003224}
+ m_Layer: 0
+ m_Name: LocalAvatar
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1174003224
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11441414, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 1174003223}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: ac27124318cf8e84aa7350c2ac1cdb80, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Mode: 0
+--- !u!82 &1174003225
+AudioSource:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 8254050, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 1174003223}
+ m_Enabled: 1
+ serializedVersion: 4
+ OutputAudioMixerGroup: {fileID: 0}
+ m_audioClip: {fileID: 0}
+ m_PlayOnAwake: 1
+ m_Volume: 1
+ m_Pitch: 1
+ Loop: 0
+ Mute: 0
+ Spatialize: 0
+ SpatializePostEffects: 0
+ Priority: 128
+ DopplerLevel: 1
+ MinDistance: 1
+ MaxDistance: 500
+ Pan2D: 0
+ rolloffMode: 0
+ BypassEffects: 0
+ BypassListenerEffects: 0
+ BypassReverbZones: 0
+ rolloffCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ - serializedVersion: 2
+ time: 1
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ panLevelCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ spreadCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ reverbZoneMixCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+--- !u!114 &1174003226
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 1174003223}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 00f3402a2ea5bff4880c0313515240cd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ DefaultBodyMaterialManager: {fileID: 960813541}
+ DefaultHandMaterialManager: {fileID: 150279912}
+ Driver: {fileID: 1174003224}
+ Base: {fileID: 562909167}
+ Body: {fileID: 2127858357}
+ ControllerLeft: {fileID: 598885956}
+ ControllerRight: {fileID: 682638373}
+ HandLeft: {fileID: 1591749837}
+ HandRight: {fileID: 2116318179}
+ RecordPackets: 0
+ UseSDKPackets: 1
+ StartWithControllers: 0
+ FirstPersonLayer:
+ layerIndex: 0
+ ThirdPersonLayer:
+ layerIndex: 0
+ ShowFirstPerson: 1
+ ShowThirdPerson: 0
+ Capabilities: -1
+ SurfaceShader: {fileID: 4800000, guid: 73f67c4e7bf718b4385aa6b1f8a06591, type: 3}
+ SurfaceShaderSelfOccluding: {fileID: 4800000, guid: 69f342b79d37541489919a19cfd8a924,
+ type: 3}
+ SurfaceShaderPBS: {fileID: 4800000, guid: 5e52aa58207bbf24d8eb8ec969e9ae88, type: 3}
+ SurfaceShaderPBSV2Single: {fileID: 4800000, guid: c26fc51e445dcfd4db09305d861dc11c,
+ type: 3}
+ SurfaceShaderPBSV2Combined: {fileID: 4800000, guid: 37d2b8298f61cd2469465fc36108675d,
+ type: 3}
+ SurfaceShaderPBSV2Simple: {fileID: 4800000, guid: 36b8b481cf607814a8cec318f0148d63,
+ type: 3}
+ SurfaceShaderPBSV2Loading: {fileID: 4800000, guid: 822f5e641dc5dd54ca9555b727b3277f,
+ type: 3}
+ oculusUserID: 1727176100935614
+ LeftHandCustomPose: {fileID: 0}
+ RightHandCustomPose: {fileID: 0}
+ PacketSettings:
+ UpdateRate: 0.033333335
+ VoiceAmplitude: 0
+ EnableMouthVertexAnimation: 0
+--- !u!4 &1202279117
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 1174003223}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 562909168}
+ - {fileID: 2127858358}
+ - {fileID: 1591749838}
+ - {fileID: 777067217}
+ - {fileID: 598885957}
+ - {fileID: 2116318180}
+ - {fileID: 682638374}
+ - {fileID: 960813542}
+ - {fileID: 150279913}
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &1221294548
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: -0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: m_RootOrder
+ value: 4
+ objectReference: {fileID: 0}
+ - target: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ propertyPath: _trackingOriginType
+ value: 1
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_RootGameObject: {fileID: 1826797342}
+ m_IsPrefabParent: 0
+--- !u!1 &1227517732
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100002, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1227517733}
+ - component: {fileID: 1227517735}
+ - component: {fileID: 1227517734}
+ m_Layer: 0
+ m_Name: CenterEyeAnchor
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1227517733
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400002, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ m_GameObject: {fileID: 1227517732}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 397287355}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &1227517734
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2037080, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ m_GameObject: {fileID: 1227517732}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.1
+ far clip plane: 1000
+ field of view: 90
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 0
+ m_AllowMSAA: 1
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+ m_StereoMirrorMode: 0
+--- !u!81 &1227517735
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 8100000, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ m_GameObject: {fileID: 1227517732}
+ m_Enabled: 1
+--- !u!1 &1329503001
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000010910743596, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1329503003}
+ - component: {fileID: 1329503002}
+ m_Layer: 0
+ m_Name: base
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1329503002
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114000010884708534, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 1329503001}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a0e33623ec5372748b5703f61a4df82d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &1329503003
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000010416372058, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 1329503001}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 294178692}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1358492915
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 184120, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1358492917}
+ - component: {fileID: 1358492916}
+ m_Layer: 0
+ m_Name: controller_left
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1358492916
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11405130, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 1358492915}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 77e19ec58d4a9e844970103e5bd8946a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &1358492917
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400938, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 1358492915}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 294178692}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1437741095
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000012026592076, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1437741097}
+ - component: {fileID: 1437741096}
+ m_Layer: 0
+ m_Name: body
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1437741096
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114000012186362028, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 1437741095}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: eb7a6650b6cb46545967d3b380b7396c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &1437741097
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000014100970646, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 1437741095}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 1.6, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 294178692}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1591749836
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000011125779090, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1591749838}
+ - component: {fileID: 1591749837}
+ m_Layer: 0
+ m_Name: hand_left
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1591749837
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114000011404857786, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 1591749836}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e53b07ad62d980a4da9fffff0b05fd2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &1591749838
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000013364346644, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 1591749836}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1202279117}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1617907519
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000011125779090, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1617907521}
+ - component: {fileID: 1617907520}
+ m_Layer: 0
+ m_Name: hand_left
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1617907520
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114000011404857786, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 1617907519}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e53b07ad62d980a4da9fffff0b05fd2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &1617907521
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000013364346644, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 959241969}
+ m_GameObject: {fileID: 1617907519}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 294178692}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1658970730
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1658970732}
+ - component: {fileID: 1658970731}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &1658970731
+Light:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1658970730}
+ m_Enabled: 1
+ serializedVersion: 8
+ m_Type: 1
+ m_Color: {r: 0.5955882, g: 0.5955882, b: 0.5955882, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_Lightmapping: 4
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &1658970732
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1658970730}
+ m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!1 &1663001938
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 113768, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1663001939}
+ m_Layer: 0
+ m_Name: RightHandAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1663001939
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 487254, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 344808318}
+ m_GameObject: {fileID: 1663001938}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1013109275}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &1742914067
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: -0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_RootOrder
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: m_LocalScale.z
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ propertyPath: oculusUserID
+ value: 1727176100935614
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ m_RootGameObject: {fileID: 1174003223}
+ m_IsPrefabParent: 0
+--- !u!1 &1826797342
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1826797345}
+ - component: {fileID: 1826797344}
+ - component: {fileID: 1826797343}
+ m_Layer: 0
+ m_Name: OVRCameraRig
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1826797343
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ m_GameObject: {fileID: 1826797342}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7e933e81d3c20c74ea6fdc708a67e3a5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ queueAhead: 1
+ useRecommendedMSAALevel: 0
+ enableAdaptiveResolution: 0
+ minRenderScale: 0.7
+ maxRenderScale: 1
+ expandMixedRealityCapturePropertySheet: 0
+ enableMixedReality: 0
+ compositionMethod: 0
+ extraHiddenLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ capturingCameraDevice: 0
+ flipCameraFrameHorizontally: 0
+ flipCameraFrameVertically: 0
+ handPoseStateLatency: 0
+ sandwichCompositionRenderLatency: 0
+ sandwichCompositionBufferedFrames: 8
+ chromaKeyColor: {r: 0, g: 1, b: 0, a: 1}
+ chromaKeySimilarity: 0.6
+ chromaKeySmoothRange: 0.03
+ chromaKeySpillRange: 0.06
+ useDynamicLighting: 0
+ depthQuality: 1
+ dynamicLightingSmoothFactor: 8
+ dynamicLightingDepthVariationClampingValue: 0.001
+ virtualGreenScreenType: 0
+ virtualGreenScreenTopY: 10
+ virtualGreenScreenBottomY: -10
+ virtualGreenScreenApplyDepthCulling: 0
+ virtualGreenScreenDepthTolerance: 0.2
+ _trackingOriginType: 1
+ usePositionTracking: 1
+ useRotationTracking: 1
+ useIPDInPositionTracking: 1
+ resetTrackerOnLoad: 0
+--- !u!114 &1826797344
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11400010, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ m_GameObject: {fileID: 1826797342}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: df9f338034892c44ebb62d97894772f1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ usePerEyeCameras: 0
+ useFixedUpdateForTracking: 0
+--- !u!4 &1826797345
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ m_GameObject: {fileID: 1826797342}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 397287355}
+ m_Father: {fileID: 0}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1892901575
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100006, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1892901576}
+ - component: {fileID: 1892901577}
+ m_Layer: 0
+ m_Name: LeftEyeAnchor
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1892901576
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400006, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ m_GameObject: {fileID: 1892901575}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 397287355}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &1892901577
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 20000012175207052, guid: 126d619cf4daa52469682f85c1378b4a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ m_GameObject: {fileID: 1892901575}
+ m_Enabled: 0
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 1
+ m_HDR: 0
+ m_AllowMSAA: 1
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+ m_StereoMirrorMode: 0
+--- !u!1 &1934788894
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 168682, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1934788895}
+ m_Layer: 0
+ m_Name: TrackerAnchor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1934788895
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 468682, guid: 126d619cf4daa52469682f85c1378b4a, type: 2}
+ m_PrefabInternal: {fileID: 1221294548}
+ m_GameObject: {fileID: 1934788894}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 397287355}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2116318178
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000010482306814, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 2116318180}
+ - component: {fileID: 2116318179}
+ m_Layer: 0
+ m_Name: hand_right
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &2116318179
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114000010372160784, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 2116318178}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e53b07ad62d980a4da9fffff0b05fd2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &2116318180
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000011212216358, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 2116318178}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.15, y: 1.221, z: 0.282}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1202279117}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2127858356
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1000012026592076, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 2127858358}
+ - component: {fileID: 2127858357}
+ m_Layer: 0
+ m_Name: body
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &2127858357
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114000012186362028, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 2127858356}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: eb7a6650b6cb46545967d3b380b7396c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &2127858358
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4000014100970646, guid: 84c8b8609f9bb434eaf5248f17ff1293,
+ type: 2}
+ m_PrefabInternal: {fileID: 1742914067}
+ m_GameObject: {fileID: 2127858356}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 1.6, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1202279117}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/Assets/Oculus/Avatar/Samples/RemoteLoopback/RemoteLoopback.unity.meta b/Assets/Oculus/Avatar/Samples/RemoteLoopback/RemoteLoopback.unity.meta
new file mode 100644
index 0000000..5566f8c
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/RemoteLoopback/RemoteLoopback.unity.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: aa35ff5ba76fb384d839383c84209da9
+timeCreated: 1468000130
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/RemoteLoopback/Scripts.meta b/Assets/Oculus/Avatar/Samples/RemoteLoopback/Scripts.meta
new file mode 100644
index 0000000..609a646
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/RemoteLoopback/Scripts.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: edf34aa3892fd9f4eb0795663f7e3ffc
+folderAsset: yes
+timeCreated: 1468000607
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/RemoteLoopback/Scripts/RemoteLoopbackManager.cs b/Assets/Oculus/Avatar/Samples/RemoteLoopback/Scripts/RemoteLoopbackManager.cs
new file mode 100644
index 0000000..ae501eb
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/RemoteLoopback/Scripts/RemoteLoopbackManager.cs
@@ -0,0 +1,155 @@
+using UnityEngine;
+using System.Collections;
+using System;
+using System.IO;
+using Oculus.Avatar;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+
+public class RemoteLoopbackManager : MonoBehaviour
+{
+ class PacketLatencyPair
+ {
+ public byte[] PacketData;
+ public float FakeLatency;
+ };
+
+ public OvrAvatar LocalAvatar;
+ public OvrAvatar LoopbackAvatar;
+
+ [System.Serializable]
+ public class SimulatedLatencySettings
+ {
+ [Range(0.0f, 0.5f)]
+ public float FakeLatencyMax = 0.25f; //250 ms max latency
+
+ [Range(0.0f, 0.5f)]
+ public float FakeLatencyMin = 0.002f; //2ms min latency
+
+ [Range(0.0f, 1.0f)]
+ public float LatencyWeight = 0.25f; // How much the latest sample impacts the current latency
+
+ [Range(0,10)]
+ public int MaxSamples = 4; //How many samples in our window
+
+ internal float AverageWindow = 0f;
+ internal float LatencySum = 0f;
+ internal LinkedList LatencyValues = new LinkedList();
+
+ public float NextValue()
+ {
+ AverageWindow = LatencySum / (float)LatencyValues.Count;
+ float RandomLatency = UnityEngine.Random.Range(FakeLatencyMin, FakeLatencyMax);
+ float FakeLatency = AverageWindow * (1f - LatencyWeight) + LatencyWeight * RandomLatency;
+
+ if (LatencyValues.Count >= MaxSamples)
+ {
+ LatencySum -= LatencyValues.First.Value;
+ LatencyValues.RemoveFirst();
+ }
+
+ LatencySum += FakeLatency;
+ LatencyValues.AddLast(FakeLatency);
+
+ return FakeLatency;
+ }
+ };
+
+ public SimulatedLatencySettings LatencySettings = new SimulatedLatencySettings();
+
+ private int PacketSequence = 0;
+
+ LinkedList packetQueue = new LinkedList();
+
+ void Start()
+ {
+ LocalAvatar.RecordPackets = true;
+ LocalAvatar.PacketRecorded += OnLocalAvatarPacketRecorded;
+ float FirstValue = UnityEngine.Random.Range(LatencySettings.FakeLatencyMin, LatencySettings.FakeLatencyMax);
+ LatencySettings.LatencyValues.AddFirst(FirstValue);
+ LatencySettings.LatencySum += FirstValue;
+ }
+
+ void OnLocalAvatarPacketRecorded(object sender, OvrAvatar.PacketEventArgs args)
+ {
+ using (MemoryStream outputStream = new MemoryStream())
+ {
+ BinaryWriter writer = new BinaryWriter(outputStream);
+
+ if (LocalAvatar.UseSDKPackets)
+ {
+ var size = CAPI.ovrAvatarPacket_GetSize(args.Packet.ovrNativePacket);
+ byte[] data = new byte[size];
+ CAPI.ovrAvatarPacket_Write(args.Packet.ovrNativePacket, size, data);
+
+ writer.Write(PacketSequence++);
+ writer.Write(size);
+ writer.Write(data);
+ }
+ else
+ {
+ writer.Write(PacketSequence++);
+ args.Packet.Write(outputStream);
+ }
+
+ SendPacketData(outputStream.ToArray());
+ }
+ }
+
+ void Update()
+ {
+ if (packetQueue.Count > 0)
+ {
+ List deadList = new List();
+ foreach (var packet in packetQueue)
+ {
+ packet.FakeLatency -= Time.deltaTime;
+
+ if (packet.FakeLatency < 0f)
+ {
+ ReceivePacketData(packet.PacketData);
+ deadList.Add(packet);
+ }
+ }
+
+ foreach (var packet in deadList)
+ {
+ packetQueue.Remove(packet);
+ }
+ }
+ }
+
+ void SendPacketData(byte[] data)
+ {
+ PacketLatencyPair PacketPair = new PacketLatencyPair();
+ PacketPair.PacketData = data;
+ PacketPair.FakeLatency = LatencySettings.NextValue();
+
+ packetQueue.AddLast(PacketPair);
+ }
+
+ void ReceivePacketData(byte[] data)
+ {
+ using (MemoryStream inputStream = new MemoryStream(data))
+ {
+ BinaryReader reader = new BinaryReader(inputStream);
+ int sequence = reader.ReadInt32();
+
+ OvrAvatarPacket avatarPacket;
+ if (LoopbackAvatar.UseSDKPackets)
+ {
+ int size = reader.ReadInt32();
+ byte[] sdkData = reader.ReadBytes(size);
+
+ IntPtr packet = CAPI.ovrAvatarPacket_Read((UInt32)data.Length, sdkData);
+ avatarPacket = new OvrAvatarPacket { ovrNativePacket = packet };
+ }
+ else
+ {
+ avatarPacket = OvrAvatarPacket.Read(inputStream);
+ }
+
+ LoopbackAvatar.GetComponent().QueuePacket(sequence, avatarPacket);
+ }
+ }
+}
diff --git a/Assets/Oculus/Avatar/Samples/RemoteLoopback/Scripts/RemoteLoopbackManager.cs.meta b/Assets/Oculus/Avatar/Samples/RemoteLoopback/Scripts/RemoteLoopbackManager.cs.meta
new file mode 100644
index 0000000..d828c99
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/RemoteLoopback/Scripts/RemoteLoopbackManager.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 1675d6690178fd0459887aed66409f70
+timeCreated: 1468000639
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter.meta b/Assets/Oculus/Avatar/Samples/SocialStarter.meta
new file mode 100644
index 0000000..88a73e6
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 0a4d3ea1f23c09f4594a99508091bd1a
+folderAsset: yes
+timeCreated: 1520618017
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets.meta b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets.meta
new file mode 100644
index 0000000..bc96f81
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 2946f922e51b0d347bf529b7a7e2667e
+folderAsset: yes
+timeCreated: 1520618026
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/MainScene.unity b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/MainScene.unity
new file mode 100644
index 0000000..de06582
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/MainScene.unity
@@ -0,0 +1,771 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 8
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 11
+ m_GIWorkflowMode: 0
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_TemporalCoherenceThreshold: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 1
+ m_LightmapEditorSettings:
+ serializedVersion: 9
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_TextureWidth: 1024
+ m_TextureHeight: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 1
+ m_BakeBackend: 0
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 500
+ m_PVRBounces: 2
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVRFilteringMode: 0
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ShowResolutionOverlay: 1
+ m_LightingDataAsset: {fileID: 0}
+ m_UseShadowmask: 0
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &8653650
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 8653655}
+ - component: {fileID: 8653654}
+ - component: {fileID: 8653653}
+ - component: {fileID: 8653652}
+ - component: {fileID: 8653651}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!81 &8653651
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 8653650}
+ m_Enabled: 0
+--- !u!124 &8653652
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 8653650}
+ m_Enabled: 1
+--- !u!92 &8653653
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 8653650}
+ m_Enabled: 1
+--- !u!20 &8653654
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 8653650}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: -1
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 0
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &8653655
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 8653650}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 1, z: -10}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &206856059
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 206856064}
+ - component: {fileID: 206856063}
+ - component: {fileID: 206856062}
+ - component: {fileID: 206856061}
+ - component: {fileID: 206856060}
+ m_Layer: 0
+ m_Name: RoomCamera
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!81 &206856060
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 206856059}
+ m_Enabled: 1
+--- !u!92 &206856061
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 206856059}
+ m_Enabled: 1
+--- !u!124 &206856062
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 206856059}
+ m_Enabled: 1
+--- !u!20 &206856063
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 206856059}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 0
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &206856064
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 206856059}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 3, z: -9.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &780482174
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 780482176}
+ - component: {fileID: 780482175}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &780482175
+Light:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 780482174}
+ m_Enabled: 1
+ serializedVersion: 8
+ m_Type: 1
+ m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_Lightmapping: 4
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &780482176
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 780482174}
+ m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!1 &840719025
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 840719029}
+ - component: {fileID: 840719028}
+ - component: {fileID: 840719027}
+ - component: {fileID: 840719026}
+ m_Layer: 0
+ m_Name: HelpPanel
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!23 &840719026
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 840719025}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: 4c18da23435024b43a2b78449cbb6ed0, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!64 &840719027
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 840719025}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Convex: 0
+ m_CookingOptions: 14
+ m_SkinWidth: 0.01
+ m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &840719028
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 840719025}
+ m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &840719029
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 840719025}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &1390249324
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 400006, guid: ce816f2e6abb0504092c23ed9b970dfd, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400006, guid: ce816f2e6abb0504092c23ed9b970dfd, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400006, guid: ce816f2e6abb0504092c23ed9b970dfd, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400006, guid: ce816f2e6abb0504092c23ed9b970dfd, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400006, guid: ce816f2e6abb0504092c23ed9b970dfd, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400006, guid: ce816f2e6abb0504092c23ed9b970dfd, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400006, guid: ce816f2e6abb0504092c23ed9b970dfd, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 400006, guid: ce816f2e6abb0504092c23ed9b970dfd, type: 2}
+ propertyPath: m_RootOrder
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 100014, guid: ce816f2e6abb0504092c23ed9b970dfd, type: 2}
+ propertyPath: m_TagString
+ value: MainCamera
+ objectReference: {fileID: 0}
+ - target: {fileID: 100010, guid: ce816f2e6abb0504092c23ed9b970dfd, type: 2}
+ propertyPath: m_TagString
+ value: MainCamera
+ objectReference: {fileID: 0}
+ - target: {fileID: 11400002, guid: ce816f2e6abb0504092c23ed9b970dfd, type: 2}
+ propertyPath: _trackingOriginType
+ value: 1
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: ce816f2e6abb0504092c23ed9b970dfd, type: 2}
+ m_IsPrefabParent: 0
+--- !u!1 &1390249325 stripped
+GameObject:
+ m_PrefabParentObject: {fileID: 100014, guid: ce816f2e6abb0504092c23ed9b970dfd, type: 2}
+ m_PrefabInternal: {fileID: 1390249324}
+--- !u!1 &1390249326 stripped
+GameObject:
+ m_PrefabParentObject: {fileID: 100010, guid: ce816f2e6abb0504092c23ed9b970dfd, type: 2}
+ m_PrefabInternal: {fileID: 1390249324}
+--- !u!20 &1390249327
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1390249325}
+ m_Enabled: 0
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 2
+ m_HDR: 0
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!20 &1390249328
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1390249326}
+ m_Enabled: 0
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 1
+ m_HDR: 0
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!1 &1390249329 stripped
+GameObject:
+ m_PrefabParentObject: {fileID: 100008, guid: ce816f2e6abb0504092c23ed9b970dfd, type: 2}
+ m_PrefabInternal: {fileID: 1390249324}
+--- !u!114 &1390249330
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1390249329}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 043fbfd0ae7027742bace7a3691feb13, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ localAvatarPrefab: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2}
+ remoteAvatarPrefab: {fileID: 11464902, guid: 90bf33f968e6bb44ea0208fc82c90a44, type: 2}
+ helpPanel: {fileID: 840719025}
+ riftMaterial: {fileID: 2100000, guid: 3480b18dc3be4c2498fb60a71184a4d1, type: 2}
+ gearMaterial: {fileID: 2100000, guid: ce189bc65dde82740a5f34ef75bf87aa, type: 2}
+ roomSphere: {fileID: 1902705651}
+ roomFloor: {fileID: 2115777246}
+ spyCamera: {fileID: 206856063}
+--- !u!1 &1902705651
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1902705655}
+ - component: {fileID: 1902705654}
+ - component: {fileID: 1902705653}
+ - component: {fileID: 1902705652}
+ m_Layer: 0
+ m_Name: Sphere
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!23 &1902705652
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1902705651}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: 296de5be1228bf34380061dd6e6b0f49, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!135 &1902705653
+SphereCollider:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1902705651}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.5
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &1902705654
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1902705651}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1902705655
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1902705651}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 3, y: 6, z: 3}
+ m_LocalScale: {x: 2, y: 2, z: 2}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2115777246
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 2115777250}
+ - component: {fileID: 2115777249}
+ - component: {fileID: 2115777248}
+ - component: {fileID: 2115777247}
+ m_Layer: 0
+ m_Name: Plane
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!23 &2115777247
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2115777246}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: c466b89bb972b8a42bd266c102f8f2cb, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!64 &2115777248
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2115777246}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Convex: 0
+ m_CookingOptions: 14
+ m_SkinWidth: 0.01
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &2115777249
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2115777246}
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &2115777250
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2115777246}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 7, y: 1, z: 7}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/MainScene.unity.meta b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/MainScene.unity.meta
new file mode 100644
index 0000000..bd5cdd7
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/MainScene.unity.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 236a5f96528802e47a70d6e47ebd3c16
+timeCreated: 1496779803
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials.meta b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials.meta
new file mode 100644
index 0000000..aa29445
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 777b874d432a52044991fe1a0210200c
+folderAsset: yes
+timeCreated: 1496779985
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/GearHelp.mat b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/GearHelp.mat
new file mode 100644
index 0000000..85aa24d
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/GearHelp.mat
@@ -0,0 +1,127 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: GearHelp
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords:
+ m_LightmapFlags: 5
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ - first:
+ name: _BumpMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _DetailAlbedoMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _DetailMask
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _DetailNormalMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _EmissionMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 2800000, guid: 0453138effcc80349b11371805f72f5b, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _MetallicGlossMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _OcclusionMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _ParallaxMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - first:
+ name: _BumpScale
+ second: 1
+ - first:
+ name: _Cutoff
+ second: 0.5
+ - first:
+ name: _DetailNormalMapScale
+ second: 1
+ - first:
+ name: _DstBlend
+ second: 0
+ - first:
+ name: _GlossMapScale
+ second: 1
+ - first:
+ name: _Glossiness
+ second: 0.5
+ - first:
+ name: _GlossyReflections
+ second: 1
+ - first:
+ name: _Metallic
+ second: 0
+ - first:
+ name: _Mode
+ second: 0
+ - first:
+ name: _OcclusionStrength
+ second: 1
+ - first:
+ name: _Parallax
+ second: 0.02
+ - first:
+ name: _SmoothnessTextureChannel
+ second: 0
+ - first:
+ name: _SpecularHighlights
+ second: 1
+ - first:
+ name: _SrcBlend
+ second: 1
+ - first:
+ name: _UVSec
+ second: 0
+ - first:
+ name: _ZWrite
+ second: 1
+ m_Colors:
+ - first:
+ name: _Color
+ second: {r: 1, g: 1, b: 1, a: 1}
+ - first:
+ name: _EmissionColor
+ second: {r: 0, g: 0, b: 0, a: 1}
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/GearHelp.mat.meta b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/GearHelp.mat.meta
new file mode 100644
index 0000000..fb52e95
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/GearHelp.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 09c03a3c5049d234590b91bbc6e84462
+timeCreated: 1497549036
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Help.mat b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Help.mat
new file mode 100644
index 0000000..3567c11
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Help.mat
@@ -0,0 +1,127 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Help
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords:
+ m_LightmapFlags: 5
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ - first:
+ name: _BumpMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _DetailAlbedoMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _DetailMask
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _DetailNormalMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _EmissionMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 2800000, guid: c8f5462cc092d0c40ad71773132863e0, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _MetallicGlossMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _OcclusionMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _ParallaxMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - first:
+ name: _BumpScale
+ second: 1
+ - first:
+ name: _Cutoff
+ second: 0.5
+ - first:
+ name: _DetailNormalMapScale
+ second: 1
+ - first:
+ name: _DstBlend
+ second: 0
+ - first:
+ name: _GlossMapScale
+ second: 1
+ - first:
+ name: _Glossiness
+ second: 0.5
+ - first:
+ name: _GlossyReflections
+ second: 1
+ - first:
+ name: _Metallic
+ second: 0
+ - first:
+ name: _Mode
+ second: 0
+ - first:
+ name: _OcclusionStrength
+ second: 1
+ - first:
+ name: _Parallax
+ second: 0.02
+ - first:
+ name: _SmoothnessTextureChannel
+ second: 0
+ - first:
+ name: _SpecularHighlights
+ second: 1
+ - first:
+ name: _SrcBlend
+ second: 1
+ - first:
+ name: _UVSec
+ second: 0
+ - first:
+ name: _ZWrite
+ second: 1
+ m_Colors:
+ - first:
+ name: _Color
+ second: {r: 1, g: 1, b: 1, a: 1}
+ - first:
+ name: _EmissionColor
+ second: {r: 0, g: 0, b: 0, a: 1}
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Help.mat.meta b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Help.mat.meta
new file mode 100644
index 0000000..ca7a270
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Help.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4c18da23435024b43a2b78449cbb6ed0
+timeCreated: 1496780065
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Offline_Mat.mat b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Offline_Mat.mat
new file mode 100644
index 0000000..024cfe0
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Offline_Mat.mat
@@ -0,0 +1,127 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Offline_Mat
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords: _EMISSION
+ m_LightmapFlags: 1
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ - first:
+ name: _BumpMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _DetailAlbedoMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _DetailMask
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _DetailNormalMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _EmissionMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _MetallicGlossMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _OcclusionMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _ParallaxMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - first:
+ name: _BumpScale
+ second: 1
+ - first:
+ name: _Cutoff
+ second: 0.5
+ - first:
+ name: _DetailNormalMapScale
+ second: 1
+ - first:
+ name: _DstBlend
+ second: 0
+ - first:
+ name: _GlossMapScale
+ second: 1
+ - first:
+ name: _Glossiness
+ second: 0.5
+ - first:
+ name: _GlossyReflections
+ second: 1
+ - first:
+ name: _Metallic
+ second: 0
+ - first:
+ name: _Mode
+ second: 0
+ - first:
+ name: _OcclusionStrength
+ second: 1
+ - first:
+ name: _Parallax
+ second: 0.02
+ - first:
+ name: _SmoothnessTextureChannel
+ second: 0
+ - first:
+ name: _SpecularHighlights
+ second: 1
+ - first:
+ name: _SrcBlend
+ second: 1
+ - first:
+ name: _UVSec
+ second: 0
+ - first:
+ name: _ZWrite
+ second: 1
+ m_Colors:
+ - first:
+ name: _Color
+ second: {r: 0, g: 0, b: 0, a: 1}
+ - first:
+ name: _EmissionColor
+ second: {r: 0, g: 0, b: 0, a: 1}
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Offline_Mat.mat.meta b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Offline_Mat.mat.meta
new file mode 100644
index 0000000..6c35a95
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Offline_Mat.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 296de5be1228bf34380061dd6e6b0f49
+timeCreated: 1496780100
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Plane_Mat.mat b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Plane_Mat.mat
new file mode 100644
index 0000000..5273be2
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Plane_Mat.mat
@@ -0,0 +1,127 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Plane_Mat
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords: _EMISSION
+ m_LightmapFlags: 1
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ - first:
+ name: _BumpMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _DetailAlbedoMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _DetailMask
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _DetailNormalMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _EmissionMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _MetallicGlossMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _OcclusionMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - first:
+ name: _ParallaxMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - first:
+ name: _BumpScale
+ second: 1
+ - first:
+ name: _Cutoff
+ second: 0.5
+ - first:
+ name: _DetailNormalMapScale
+ second: 1
+ - first:
+ name: _DstBlend
+ second: 0
+ - first:
+ name: _GlossMapScale
+ second: 1
+ - first:
+ name: _Glossiness
+ second: 0.5
+ - first:
+ name: _GlossyReflections
+ second: 1
+ - first:
+ name: _Metallic
+ second: 0
+ - first:
+ name: _Mode
+ second: 0
+ - first:
+ name: _OcclusionStrength
+ second: 1
+ - first:
+ name: _Parallax
+ second: 0.02
+ - first:
+ name: _SmoothnessTextureChannel
+ second: 0
+ - first:
+ name: _SpecularHighlights
+ second: 1
+ - first:
+ name: _SrcBlend
+ second: 1
+ - first:
+ name: _UVSec
+ second: 0
+ - first:
+ name: _ZWrite
+ second: 1
+ m_Colors:
+ - first:
+ name: _Color
+ second: {r: 0, g: 0.25517225, b: 1, a: 1}
+ - first:
+ name: _EmissionColor
+ second: {r: 0, g: 0, b: 0, a: 1}
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Plane_Mat.mat.meta b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Plane_Mat.mat.meta
new file mode 100644
index 0000000..dbefb45
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Plane_Mat.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c466b89bb972b8a42bd266c102f8f2cb
+timeCreated: 1496780131
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts.meta b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts.meta
new file mode 100644
index 0000000..84dee1a
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: f05e47c366870a44ab2b3b5a8a64e107
+folderAsset: yes
+timeCreated: 1496780004
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/P2PManager.cs b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/P2PManager.cs
new file mode 100644
index 0000000..db28da2
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/P2PManager.cs
@@ -0,0 +1,231 @@
+using UnityEngine;
+using System;
+using Oculus.Platform;
+using Oculus.Platform.Models;
+
+// Helper class to manage a Peer-to-Peer connection to the other user.
+// The connection is used to send and received the Transforms for the
+// Avatars. The Transforms are sent via unreliable UDP at a fixed
+// frequency.
+public class P2PManager
+{
+ // packet header is a message type byte
+ private enum MessageType : byte
+ {
+ Update = 1,
+ };
+
+ public P2PManager()
+ {
+ Net.SetPeerConnectRequestCallback(PeerConnectRequestCallback);
+ Net.SetConnectionStateChangedCallback(ConnectionStateChangedCallback);
+ }
+
+ #region Connection Management
+
+ public void ConnectTo(ulong userID)
+ {
+ // ID comparison is used to decide who calls Connect and who calls Accept
+ if (SocialPlatformManager.MyID < userID)
+ {
+ Net.Connect(userID);
+ SocialPlatformManager.LogOutput("P2P connect to " + userID);
+ }
+ }
+
+ public void Disconnect(ulong userID)
+ {
+ if (userID != 0)
+ {
+ Net.Close(userID);
+
+ RemotePlayer remote = SocialPlatformManager.GetRemoteUser(userID);
+ if (remote != null)
+ {
+ remote.p2pConnectionState = PeerConnectionState.Unknown;
+ }
+ }
+ }
+
+ void PeerConnectRequestCallback(Message msg)
+ {
+ SocialPlatformManager.LogOutput("P2P request from " + msg.Data.ID);
+
+ RemotePlayer remote = SocialPlatformManager.GetRemoteUser(msg.Data.ID);
+ if (remote != null)
+ {
+ SocialPlatformManager.LogOutput("P2P request accepted from " + msg.Data.ID);
+ Net.Accept(msg.Data.ID);
+ }
+ }
+
+ void ConnectionStateChangedCallback(Message msg)
+ {
+ SocialPlatformManager.LogOutput("P2P state to " + msg.Data.ID + " changed to " + msg.Data.State);
+
+ RemotePlayer remote = SocialPlatformManager.GetRemoteUser(msg.Data.ID);
+ if (remote != null)
+ {
+ remote.p2pConnectionState = msg.Data.State;
+
+ if (msg.Data.State == PeerConnectionState.Timeout &&
+ // ID comparison is used to decide who calls Connect and who calls Accept
+ SocialPlatformManager.MyID < msg.Data.ID)
+ {
+ // keep trying until hangup!
+ Net.Connect(msg.Data.ID);
+ SocialPlatformManager.LogOutput("P2P re-connect to " + msg.Data.ID);
+ }
+ }
+ }
+
+ #endregion
+
+ #region Message Sending
+
+ public void SendAvatarUpdate(ulong userID, Transform bodyTransform, UInt32 sequence, byte[] avatarPacket)
+ {
+ const int UPDATE_DATA_LENGTH = 41;
+ byte[] sendBuffer = new byte[avatarPacket.Length + UPDATE_DATA_LENGTH];
+
+ int offset = 0;
+ PackByte((byte)MessageType.Update, sendBuffer, ref offset);
+
+ PackULong(SocialPlatformManager.MyID, sendBuffer, ref offset);
+
+ PackFloat(bodyTransform.localPosition.x, sendBuffer, ref offset);
+ PackFloat(bodyTransform.localPosition.y, sendBuffer, ref offset);
+ PackFloat(bodyTransform.localPosition.z, sendBuffer, ref offset);
+ PackFloat(bodyTransform.localRotation.x, sendBuffer, ref offset);
+ PackFloat(bodyTransform.localRotation.y, sendBuffer, ref offset);
+ PackFloat(bodyTransform.localRotation.z, sendBuffer, ref offset);
+ PackFloat(bodyTransform.localRotation.w, sendBuffer, ref offset);
+
+ PackUInt32(sequence, sendBuffer, ref offset);
+
+ Debug.Assert(offset == UPDATE_DATA_LENGTH);
+
+ Buffer.BlockCopy(avatarPacket, 0, sendBuffer, offset, avatarPacket.Length);
+ Net.SendPacket(userID, sendBuffer, SendPolicy.Unreliable);
+ }
+ #endregion
+
+ #region Message Receiving
+
+ public void GetRemotePackets()
+ {
+ Packet packet;
+
+ while ((packet = Net.ReadPacket()) != null)
+ {
+ byte[] receiveBuffer = new byte[packet.Size];
+ packet.ReadBytes(receiveBuffer);
+
+ int offset = 0;
+ MessageType messageType = (MessageType)ReadByte(receiveBuffer, ref offset);
+
+ ulong remoteUserID = ReadULong(receiveBuffer, ref offset);
+ RemotePlayer remote = SocialPlatformManager.GetRemoteUser(remoteUserID);
+ if (remote == null)
+ {
+ SocialPlatformManager.LogOutput("Unknown remote player: " + remoteUserID);
+ continue;
+ }
+
+ if (messageType == MessageType.Update)
+ {
+ processAvatarPacket(remote, ref receiveBuffer, ref offset);
+ }
+ else
+ {
+ SocialPlatformManager.LogOutput("Invalid packet type: " + packet.Size);
+ continue;
+ }
+
+ }
+ }
+
+ public void processAvatarPacket(RemotePlayer remote, ref byte[] packet, ref int offset)
+ {
+ if (remote == null)
+ return;
+
+ remote.receivedBodyPositionPrior = remote.receivedBodyPosition;
+ remote.receivedBodyPosition.x = ReadFloat(packet, ref offset);
+ remote.receivedBodyPosition.y = ReadFloat(packet, ref offset);
+ remote.receivedBodyPosition.z = ReadFloat(packet, ref offset);
+
+ remote.receivedBodyRotationPrior = remote.receivedBodyRotation;
+ remote.receivedBodyRotation.x = ReadFloat(packet, ref offset);
+ remote.receivedBodyRotation.y = ReadFloat(packet, ref offset);
+ remote.receivedBodyRotation.z = ReadFloat(packet, ref offset);
+ remote.receivedBodyRotation.w = ReadFloat(packet, ref offset);
+
+ remote.RemoteAvatar.transform.localPosition = remote.receivedBodyPosition;
+ remote.RemoteAvatar.transform.localRotation = remote.receivedBodyRotation;
+
+ // forward the remaining data to the avatar system
+ int sequence = (int)ReadUInt32(packet, ref offset);
+
+ byte[] remainingAvatarBuffer = new byte[packet.Length - offset];
+ Buffer.BlockCopy(packet, offset, remainingAvatarBuffer, 0, remainingAvatarBuffer.Length);
+
+ IntPtr avatarPacket = Oculus.Avatar.CAPI.ovrAvatarPacket_Read((UInt32)remainingAvatarBuffer.Length, remainingAvatarBuffer);
+
+ var ovravatarPacket = new OvrAvatarPacket { ovrNativePacket = avatarPacket };
+ remote.RemoteAvatar.GetComponent().QueuePacket(sequence, ovravatarPacket);
+ }
+ #endregion
+
+ #region Serialization
+
+ void PackByte(byte b, byte[] buf, ref int offset)
+ {
+ buf[offset] = b;
+ offset += sizeof(byte);
+ }
+ byte ReadByte(byte[] buf, ref int offset)
+ {
+ byte val = buf[offset];
+ offset += sizeof(byte);
+ return val;
+ }
+
+ void PackFloat(float f, byte[] buf, ref int offset)
+ {
+ Buffer.BlockCopy(BitConverter.GetBytes(f), 0, buf, offset, sizeof(float));
+ offset += sizeof(float);
+ }
+ float ReadFloat(byte[] buf, ref int offset)
+ {
+ float val = BitConverter.ToSingle(buf, offset);
+ offset += sizeof(float);
+ return val;
+ }
+
+ void PackULong(ulong u, byte[] buf, ref int offset)
+ {
+ Buffer.BlockCopy(BitConverter.GetBytes(u), 0, buf, offset, sizeof(ulong));
+ offset += sizeof(ulong);
+ }
+ ulong ReadULong(byte[] buf, ref int offset)
+ {
+ ulong val = BitConverter.ToUInt64(buf, offset);
+ offset += sizeof(ulong);
+ return val;
+ }
+
+ void PackUInt32(UInt32 u, byte[] buf, ref int offset)
+ {
+ Buffer.BlockCopy(BitConverter.GetBytes(u), 0, buf, offset, sizeof(UInt32));
+ offset += sizeof(UInt32);
+ }
+ UInt32 ReadUInt32(byte[] buf, ref int offset)
+ {
+ UInt32 val = BitConverter.ToUInt32(buf, offset);
+ offset += sizeof(UInt32);
+ return val;
+ }
+
+ #endregion
+}
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/P2PManager.cs.meta b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/P2PManager.cs.meta
new file mode 100644
index 0000000..250606c
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/P2PManager.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: e5d77a60e86b5bd4a999ef6c83f9e651
+timeCreated: 1521151723
+licenseType: Store
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/PlayerController.cs b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/PlayerController.cs
new file mode 100644
index 0000000..991b7ee
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/PlayerController.cs
@@ -0,0 +1,101 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+using Oculus.Platform;
+using Oculus.Platform.Models;
+
+public class PlayerController : SocialPlatformManager
+{
+
+ // Secondary camera to debug and view the whole scene from above
+ public Camera spyCamera;
+
+ // The OVRCameraRig for the main player so we can disable it
+ private GameObject cameraRig;
+
+ private bool showUI = true;
+
+ public override void Awake()
+ {
+ base.Awake();
+ cameraRig = localPlayerHead.gameObject;
+ }
+
+ // Use this for initialization
+ public override void Start()
+ {
+ base.Start();
+ spyCamera.enabled = false;
+ }
+
+ // Update is called once per frame
+ public override void Update()
+ {
+ base.Update();
+ checkInput();
+ }
+
+ // Check for input from the touch controllers
+ void checkInput()
+ {
+ if (UnityEngine.Application.platform == RuntimePlatform.Android)
+ {
+ // GearVR Controller
+
+ // Bring up friend invite list
+ if (OVRInput.GetDown(OVRInput.Button.Back))
+ {
+ Rooms.LaunchInvitableUserFlow(roomManager.roomID);
+ }
+
+ // Toggle Camera
+ if (OVRInput.GetDown(OVRInput.Button.PrimaryTouchpad))
+ {
+ ToggleCamera();
+ }
+
+ // Toggle Help UI
+ if (OVRInput.GetDown(OVRInput.Button.PrimaryIndexTrigger))
+ {
+ ToggleUI();
+ }
+ }
+ else
+ {
+ // PC Touch
+
+ // Bring up friend invite list
+ if (OVRInput.GetDown(OVRInput.Button.Three))
+ {
+ Rooms.LaunchInvitableUserFlow (roomManager.roomID);
+ }
+
+ // Toggle Camera
+ if (OVRInput.GetDown(OVRInput.Button.Four))
+ {
+ ToggleCamera();
+ }
+
+ // Toggle Help UI
+ if (OVRInput.GetDown(OVRInput.Button.PrimaryThumbstick))
+ {
+ ToggleUI();
+ }
+ }
+ }
+
+ void ToggleCamera()
+ {
+ spyCamera.enabled = !spyCamera.enabled;
+ localAvatar.ShowThirdPerson = !localAvatar.ShowThirdPerson;
+ cameraRig.SetActive(!cameraRig.activeSelf);
+ }
+
+ void ToggleUI()
+ {
+ showUI = !showUI;
+ helpPanel.SetActive(showUI);
+ localAvatar.ShowLeftController(showUI);
+ }
+}
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/PlayerController.cs.meta b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/PlayerController.cs.meta
new file mode 100644
index 0000000..51298cd
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/PlayerController.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 043fbfd0ae7027742bace7a3691feb13
+timeCreated: 1521151723
+licenseType: Store
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/RemotePlayer.cs b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/RemotePlayer.cs
new file mode 100644
index 0000000..a523b16
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/RemotePlayer.cs
@@ -0,0 +1,32 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using Oculus.Platform;
+
+public class RemotePlayer
+{
+ public ulong remoteUserID;
+ public bool stillInRoom;
+
+ // the result of the last connection state update message
+ public PeerConnectionState p2pConnectionState;
+ // the last reported state of the VOIP connection
+ public PeerConnectionState voipConnectionState;
+
+ public OvrAvatar RemoteAvatar;
+
+ // the last received position updates
+ public Vector3 receivedBodyPosition;
+
+ // the previous received positions to interpolate from
+ public Vector3 receivedBodyPositionPrior;
+
+ // the last received rotation updates
+ public Quaternion receivedBodyRotation;
+
+ // the previous received rotations to interpolate from
+ public Quaternion receivedBodyRotationPrior;
+
+ // the voip tracker for the player
+ public VoipAudioSourceHiLevel voipSource;
+}
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/RemotePlayer.cs.meta b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/RemotePlayer.cs.meta
new file mode 100644
index 0000000..f4fc8da
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/RemotePlayer.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: e5bc955e8176ef1478360f25ef5ccc8a
+timeCreated: 1521151723
+licenseType: Store
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/RoomManager.cs b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/RoomManager.cs
new file mode 100644
index 0000000..fb8f143
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/RoomManager.cs
@@ -0,0 +1,225 @@
+using UnityEngine;
+using System;
+using System.Collections.Generic;
+using Oculus.Platform;
+using Oculus.Platform.Models;
+
+// Helper class to manage Room creation, membership and invites.
+// Rooms are a mechanism to help Oculus users create a shared experience.
+// Users can only be in one Room at a time. If the Owner of a room
+// leaves, then ownership is transferred to some other member.
+// Here we use rooms to create the notion of a 'call' to help us
+// invite a Friend and establish a VOIP and P2P connection.
+public class RoomManager
+{
+ // the ID of the Room that I'm in
+ public ulong roomID;
+
+ // the ID of the Room that I'm invited to
+ private ulong invitedRoomID;
+
+ // Am I the server?
+ private bool amIServer;
+
+ // Have we already gone through the startup?
+ private bool startupDone;
+
+ public RoomManager()
+ {
+ amIServer = false;
+ startupDone = false;
+ Rooms.SetRoomInviteAcceptedNotificationCallback(AcceptingInviteCallback);
+ Rooms.SetUpdateNotificationCallback(RoomUpdateCallback);
+ }
+
+ #region Launched Application from Accepting Invite
+
+ // Callback to check whether the User accepted an invite
+ void AcceptingInviteCallback(Message msg)
+ {
+ if (msg.IsError)
+ {
+ SocialPlatformManager.TerminateWithError(msg);
+ return;
+ }
+
+ SocialPlatformManager.LogOutput("Launched Invite to join Room: " + msg.Data);
+
+ invitedRoomID = Convert.ToUInt64(msg.GetString());
+
+ if (startupDone)
+ {
+ CheckForInvite();
+ }
+ }
+
+ // Check to see if the App was launched by accepting the Notication from the main Oculus app.
+ // If so, we can directly join that room. (If it's still available.)
+ public bool CheckForInvite()
+ {
+ startupDone = true;
+
+ if (invitedRoomID != 0)
+ {
+ JoinExistingRoom(invitedRoomID);
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ #endregion
+
+ #region Create a Room and Invite Friend(s) from the Oculus Universal Menu
+
+ public void CreateRoom()
+ {
+ Rooms.CreateAndJoinPrivate(RoomJoinPolicy.FriendsOfOwner, 4, true)
+ .OnComplete(CreateAndJoinPrivateRoomCallback);
+ }
+
+ void CreateAndJoinPrivateRoomCallback(Message msg)
+ {
+ if (msg.IsError)
+ {
+ SocialPlatformManager.TerminateWithError(msg);
+ return;
+ }
+
+ roomID = msg.Data.ID;
+
+ if (msg.Data.OwnerOptional != null && msg.Data.OwnerOptional.ID == SocialPlatformManager.MyID)
+ {
+ amIServer = true;
+ }
+ else
+ {
+ amIServer = false;
+ }
+
+ SocialPlatformManager.TransitionToState(SocialPlatformManager.State.WAITING_IN_A_ROOM);
+ SocialPlatformManager.SetFloorColorForState(amIServer);
+ }
+
+ void OnLaunchInviteWorkflowComplete(Message msg)
+ {
+ if (msg.IsError)
+ {
+ SocialPlatformManager.TerminateWithError(msg);
+ return;
+ }
+ }
+
+ #endregion
+
+ #region Accept Invite
+
+ public void JoinExistingRoom(ulong roomID)
+ {
+ SocialPlatformManager.TransitionToState(SocialPlatformManager.State.JOINING_A_ROOM);
+ Rooms.Join(roomID, true).OnComplete(JoinRoomCallback);
+ }
+
+ void JoinRoomCallback(Message msg)
+ {
+ if (msg.IsError)
+ {
+ // is reasonable if caller called more than 1 person, and I didn't answer first
+ return;
+ }
+
+ var ownerOculusId = msg.Data.OwnerOptional != null ? msg.Data.OwnerOptional.OculusID : "null";
+ var userCount = msg.Data.UsersOptional != null ? msg.Data.UsersOptional.Count : 0;
+
+ SocialPlatformManager.LogOutput("Joined Room " + msg.Data.ID + " owner: " + ownerOculusId + " count: " + userCount);
+ roomID = msg.Data.ID;
+ ProcessRoomData(msg);
+ }
+
+ #endregion
+
+ #region Room Updates
+
+ void RoomUpdateCallback(Message msg)
+ {
+ if (msg.IsError)
+ {
+ SocialPlatformManager.TerminateWithError(msg);
+ return;
+ }
+
+ var ownerOculusId = msg.Data.OwnerOptional != null ? msg.Data.OwnerOptional.OculusID : "null";
+ var userCount = msg.Data.UsersOptional != null ? msg.Data.UsersOptional.Count : 0;
+
+ SocialPlatformManager.LogOutput("Room Update " + msg.Data.ID + " owner: " + ownerOculusId + " count: " + userCount);
+ ProcessRoomData(msg);
+ }
+
+ #endregion
+
+ #region Room Exit
+
+ public void LeaveCurrentRoom()
+ {
+ if (roomID != 0)
+ {
+ Rooms.Leave(roomID);
+ roomID = 0;
+ }
+ SocialPlatformManager.TransitionToState(SocialPlatformManager.State.LEAVING_A_ROOM);
+ }
+
+ #endregion
+
+ #region Process Room Data
+
+ void ProcessRoomData(Message msg)
+ {
+ if (msg.Data.OwnerOptional != null && msg.Data.OwnerOptional.ID == SocialPlatformManager.MyID)
+ {
+ amIServer = true;
+ }
+ else
+ {
+ amIServer = false;
+ }
+
+ // if the caller left while I was in the process of joining, just use that as our new room
+ if (msg.Data.UsersOptional != null && msg.Data.UsersOptional.Count == 1)
+ {
+ SocialPlatformManager.TransitionToState(SocialPlatformManager.State.WAITING_IN_A_ROOM);
+ }
+ else
+ {
+ SocialPlatformManager.TransitionToState(SocialPlatformManager.State.CONNECTED_IN_A_ROOM);
+ }
+
+ // Look for users that left
+ SocialPlatformManager.MarkAllRemoteUsersAsNotInRoom();
+
+ if (msg.Data.UsersOptional != null)
+ {
+ foreach (User user in msg.Data.UsersOptional)
+ {
+ if (user.ID != SocialPlatformManager.MyID)
+ {
+ if (!SocialPlatformManager.IsUserInRoom(user.ID))
+ {
+ SocialPlatformManager.AddRemoteUser(user.ID);
+ }
+ else
+ {
+ SocialPlatformManager.MarkRemoteUserInRoom(user.ID);
+ }
+ }
+ }
+ }
+
+ SocialPlatformManager.ForgetRemoteUsersNotInRoom();
+ SocialPlatformManager.SetFloorColorForState(amIServer);
+ }
+
+ #endregion
+}
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/RoomManager.cs.meta b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/RoomManager.cs.meta
new file mode 100644
index 0000000..a2aa926
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/RoomManager.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 923f57b3cf1990047b2e448680c8d5b8
+timeCreated: 1521151723
+licenseType: Store
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/SocialPlatformManager.cs b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/SocialPlatformManager.cs
new file mode 100644
index 0000000..a5b5a9d
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/SocialPlatformManager.cs
@@ -0,0 +1,556 @@
+using UnityEngine;
+using System;
+using System.IO;
+using System.Collections.Generic;
+using Oculus.Avatar;
+using Oculus.Platform;
+using Oculus.Platform.Models;
+
+
+// This class coordinates communication with the Oculus Platform
+// Service running in your device.
+public class SocialPlatformManager : MonoBehaviour
+{
+ private static readonly Vector3 START_ROTATION_ONE = new Vector3(0, 180, 0);
+ private static readonly Vector3 START_POSITION_ONE = new Vector3(0, 4, 5);
+
+ private static readonly Vector3 START_ROTATION_TWO = new Vector3(0, 0, 0);
+ private static readonly Vector3 START_POSITION_TWO = new Vector3(0, 4, -5);
+
+ private static readonly Vector3 START_ROTATION_THREE = new Vector3(0, 270, 0);
+ private static readonly Vector3 START_POSITION_THREE = new Vector3(5, 4, 0);
+
+ private static readonly Vector3 START_ROTATION_FOUR = new Vector3(0, 90, 0);
+ private static readonly Vector3 START_POSITION_FOUR = new Vector3(-5, 4, 0);
+
+ private static readonly Color BLACK = new Color(0.0f, 0.0f, 0.0f);
+ private static readonly Color WHITE = new Color(1.0f, 1.0f, 1.0f);
+ private static readonly Color CYAN = new Color(0.0f, 1.0f, 1.0f);
+ private static readonly Color BLUE = new Color(0.0f, 0.0f, 1.0f);
+ private static readonly Color GREEN = new Color(0.0f, 1.0f, 0.0f);
+
+ public Oculus.Platform.CAPI.FilterCallback micFilterDelegate = new Oculus.Platform.CAPI.FilterCallback(SocialPlatformManager.MicFilter);
+ private float voiceCurrent = 0.0f;
+
+ // Local player
+ private UInt32 packetSequence = 0;
+
+ public OvrAvatar localAvatarPrefab;
+ public OvrAvatar remoteAvatarPrefab;
+
+ public GameObject helpPanel;
+ protected MeshRenderer helpMesh;
+ public Material riftMaterial;
+ public Material gearMaterial;
+
+ protected OvrAvatar localAvatar;
+ protected GameObject localTrackingSpace;
+ protected GameObject localPlayerHead;
+
+ // Remote players
+ protected Dictionary remoteUsers = new Dictionary();
+
+ // GameObject that represents the center sphere as a visual status indicator of the room
+ public GameObject roomSphere;
+ protected MeshRenderer sphereMesh;
+ public GameObject roomFloor;
+ protected MeshRenderer floorMesh;
+
+ protected State currentState;
+
+ protected static SocialPlatformManager s_instance = null;
+ protected RoomManager roomManager;
+ protected P2PManager p2pManager;
+ protected VoipManager voipManager;
+
+ // my Application-scoped Oculus ID
+ protected ulong myID;
+
+ // my Oculus user name
+ protected string myOculusID;
+
+
+ // animating the mouth for voip
+ public static readonly float VOIP_SCALE = 2f;
+
+ public virtual void Update()
+ {
+ // Look for updates from remote users
+ p2pManager.GetRemotePackets();
+
+ // update avatar mouths to match voip volume
+ foreach (KeyValuePair kvp in remoteUsers)
+ {
+ float remoteVoiceCurrent = Mathf.Clamp(kvp.Value.voipSource.peakAmplitude * VOIP_SCALE, 0f, 1f);
+ kvp.Value.RemoteAvatar.VoiceAmplitude = remoteVoiceCurrent;
+ }
+
+ if (localAvatar != null)
+ {
+ localAvatar.VoiceAmplitude = Mathf.Clamp(voiceCurrent * VOIP_SCALE, 0f, 1f);
+ }
+ }
+
+ #region Initialization and Shutdown
+
+ public virtual void Awake()
+ {
+ LogOutputLine("Start Log.");
+
+ // Grab the MeshRenderers. We'll be using the material colour to visually show status
+ helpMesh = helpPanel.GetComponent();
+ sphereMesh = roomSphere.GetComponent();
+ floorMesh = roomFloor.GetComponent();
+
+ // Set up the local player
+ localTrackingSpace = this.transform.Find("OVRCameraRig/TrackingSpace").gameObject;
+ localPlayerHead = this.transform.Find("OVRCameraRig/TrackingSpace/CenterEyeAnchor").gameObject;
+
+ // make sure only one instance of this manager ever exists
+ if (s_instance != null)
+ {
+ Destroy(gameObject);
+ return;
+ }
+
+ s_instance = this;
+ DontDestroyOnLoad(gameObject);
+
+ TransitionToState(State.INITIALIZING);
+
+ Core.Initialize();
+
+ roomManager = new RoomManager();
+ p2pManager = new P2PManager();
+ voipManager = new VoipManager();
+ }
+
+ public virtual void Start()
+ {
+ // First thing we should do is perform an entitlement check to make sure
+ // we successfully connected to the Oculus Platform Service.
+ Entitlements.IsUserEntitledToApplication().OnComplete(IsEntitledCallback);
+ Oculus.Platform.Request.RunCallbacks();
+ }
+
+ void IsEntitledCallback(Message msg)
+ {
+ if (msg.IsError)
+ {
+ TerminateWithError(msg);
+ return;
+ }
+
+ // Next get the identity of the user that launched the Application.
+ Users.GetLoggedInUser().OnComplete(GetLoggedInUserCallback);
+ Oculus.Platform.Request.RunCallbacks();
+ }
+
+ void GetLoggedInUserCallback(Message msg)
+ {
+ if (msg.IsError)
+ {
+ TerminateWithError(msg);
+ return;
+ }
+
+ myID = msg.Data.ID;
+ myOculusID = msg.Data.OculusID;
+
+ localAvatar = Instantiate(localAvatarPrefab);
+ localTrackingSpace = this.transform.Find("OVRCameraRig/TrackingSpace").gameObject;
+
+ localAvatar.transform.SetParent(localTrackingSpace.transform, false);
+ localAvatar.transform.localPosition = new Vector3(0, 0, 0);
+ localAvatar.transform.localRotation = Quaternion.identity;
+
+ if (UnityEngine.Application.platform == RuntimePlatform.Android)
+ {
+ helpPanel.transform.SetParent(localAvatar.transform.Find("body"), false);
+ helpPanel.transform.localPosition = new Vector3(0, 1.0f, 1.0f);
+ helpMesh.material = gearMaterial;
+ }
+ else
+ {
+ helpPanel.transform.SetParent(localAvatar.transform.Find("hand_left"), false);
+ helpPanel.transform.localPosition = new Vector3(0, 0.2f, 0.2f);
+ helpMesh.material = riftMaterial;
+ }
+
+ localAvatar.oculusUserID = myID.ToString();
+ localAvatar.RecordPackets = true;
+ localAvatar.PacketRecorded += OnLocalAvatarPacketRecorded;
+ localAvatar.EnableMouthVertexAnimation = true;
+
+ Quaternion rotation = Quaternion.identity;
+
+ switch (UnityEngine.Random.Range(0, 4))
+ {
+ case 0:
+ rotation.eulerAngles = START_ROTATION_ONE;
+ this.transform.localPosition = START_POSITION_ONE;
+ this.transform.localRotation = rotation;
+ break;
+
+ case 1:
+ rotation.eulerAngles = START_ROTATION_TWO;
+ this.transform.localPosition = START_POSITION_TWO;
+ this.transform.localRotation = rotation;
+ break;
+
+ case 2:
+ rotation.eulerAngles = START_ROTATION_THREE;
+ this.transform.localPosition = START_POSITION_THREE;
+ this.transform.localRotation = rotation;
+ break;
+
+ case 3:
+ default:
+ rotation.eulerAngles = START_ROTATION_FOUR;
+ this.transform.localPosition = START_POSITION_FOUR;
+ this.transform.localRotation = rotation;
+ break;
+ }
+
+ TransitionToState(State.CHECKING_LAUNCH_STATE);
+
+ // If the user launched the app by accepting the notification, then we want to
+ // join that room. If not, try to find a friend's room to join
+ if (!roomManager.CheckForInvite())
+ {
+ SocialPlatformManager.LogOutput("No invite on launch, looking for a friend to join.");
+ Users.GetLoggedInUserFriendsAndRooms()
+ .OnComplete(GetLoggedInUserFriendsAndRoomsCallback);
+ }
+ Voip.SetMicrophoneFilterCallback(micFilterDelegate);
+ }
+
+ void GetLoggedInUserFriendsAndRoomsCallback(Message msg)
+ {
+ if (msg.IsError)
+ {
+ return;
+ }
+
+ foreach (UserAndRoom el in msg.Data)
+ {
+ // see if any friends are in a joinable room
+ if (el.User == null) continue;
+ if (el.RoomOptional == null) continue;
+ if (el.RoomOptional.IsMembershipLocked == true) continue;
+ if (el.RoomOptional.Joinability != RoomJoinability.CanJoin) continue;
+ if (el.RoomOptional.JoinPolicy == RoomJoinPolicy.None) continue;
+
+ SocialPlatformManager.LogOutput("Trying to join room " + el.RoomOptional.ID + ", friend " + el.User.OculusID);
+ roomManager.JoinExistingRoom(el.RoomOptional.ID);
+ return;
+ }
+
+ SocialPlatformManager.LogOutput("No friend to join. Creating my own room.");
+ // didn't find any open rooms, start a new room
+ roomManager.CreateRoom();
+ TransitionToState(State.CREATING_A_ROOM);
+ }
+
+ public void OnLocalAvatarPacketRecorded(object sender, OvrAvatar.PacketEventArgs args)
+ {
+ var size = Oculus.Avatar.CAPI.ovrAvatarPacket_GetSize(args.Packet.ovrNativePacket);
+ byte[] toSend = new byte[size];
+
+ Oculus.Avatar.CAPI.ovrAvatarPacket_Write(args.Packet.ovrNativePacket, size, toSend);
+
+ foreach (KeyValuePair kvp in remoteUsers)
+ {
+ //LogOutputLine("Sending avatar Packet to " + kvp.Key);
+ p2pManager.SendAvatarUpdate(kvp.Key, this.localAvatar.transform, packetSequence, toSend);
+ }
+
+ packetSequence++;
+ }
+
+ public void OnApplicationQuit()
+ {
+ roomManager.LeaveCurrentRoom();
+
+ foreach (KeyValuePair kvp in remoteUsers)
+ {
+ p2pManager.Disconnect(kvp.Key);
+ voipManager.Disconnect(kvp.Key);
+ }
+ LogOutputLine("End Log.");
+ }
+
+ public void AddUser(ulong userID, ref RemotePlayer remoteUser)
+ {
+ remoteUsers.Add(userID, remoteUser);
+ }
+
+ public void LogOutputLine(string line)
+ {
+ Debug.Log(Time.time + ": " + line);
+ }
+
+ // For most errors we terminate the Application since this example doesn't make
+ // sense if the user is disconnected.
+ public static void TerminateWithError(Message msg)
+ {
+ s_instance.LogOutputLine("Error: " + msg.GetError().Message);
+ UnityEngine.Application.Quit();
+ }
+
+ #endregion
+
+ #region Properties
+
+ public static State CurrentState
+ {
+ get
+ {
+ return s_instance.currentState;
+ }
+ }
+
+ public static ulong MyID
+ {
+ get
+ {
+ if (s_instance != null)
+ {
+ return s_instance.myID;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+ }
+
+ public static string MyOculusID
+ {
+ get
+ {
+ if (s_instance != null && s_instance.myOculusID != null)
+ {
+ return s_instance.myOculusID;
+ }
+ else
+ {
+ return string.Empty;
+ }
+ }
+ }
+
+ #endregion
+
+ #region State Management
+
+ public enum State
+ {
+ // loading platform library, checking application entitlement,
+ // getting the local user info
+ INITIALIZING,
+
+ // Checking to see if we were launched from an invite
+ CHECKING_LAUNCH_STATE,
+
+ // Creating a room to join
+ CREATING_A_ROOM,
+
+ // in this state we've create a room, and hopefully
+ // sent some invites, and we're waiting people to join
+ WAITING_IN_A_ROOM,
+
+ // in this state we're attempting to join a room from an invite
+ JOINING_A_ROOM,
+
+ // we're in a room with others
+ CONNECTED_IN_A_ROOM,
+
+ // Leaving a room
+ LEAVING_A_ROOM,
+
+ // shutdown any connections and leave the current room
+ SHUTDOWN,
+ };
+
+ public static void TransitionToState(State newState)
+ {
+ if (s_instance)
+ {
+ s_instance.LogOutputLine("State " + s_instance.currentState + " -> " + newState);
+ }
+
+ if (s_instance && s_instance.currentState != newState)
+ {
+ s_instance.currentState = newState;
+
+ // state transition logic
+ switch (newState)
+ {
+ case State.SHUTDOWN:
+ s_instance.OnApplicationQuit();
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ SetSphereColorForState();
+ }
+
+ private static void SetSphereColorForState()
+ {
+ switch (s_instance.currentState)
+ {
+ case State.INITIALIZING:
+ case State.SHUTDOWN:
+ s_instance.sphereMesh.material.color = BLACK;
+ break;
+
+ case State.WAITING_IN_A_ROOM:
+ s_instance.sphereMesh.material.color = WHITE;
+ break;
+
+ case State.CONNECTED_IN_A_ROOM:
+ s_instance.sphereMesh.material.color = CYAN;
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ public static void SetFloorColorForState(bool host)
+ {
+ if (host)
+ {
+ s_instance.floorMesh.material.color = BLUE;
+ }
+ else
+ {
+ s_instance.floorMesh.material.color = GREEN;
+ }
+ }
+
+ public static void MarkAllRemoteUsersAsNotInRoom()
+ {
+ foreach (KeyValuePair kvp in s_instance.remoteUsers)
+ {
+ kvp.Value.stillInRoom = false;
+ }
+ }
+
+ public static void MarkRemoteUserInRoom(ulong userID)
+ {
+ RemotePlayer remoteUser = new RemotePlayer();
+
+ if (s_instance.remoteUsers.TryGetValue(userID, out remoteUser))
+ {
+ remoteUser.stillInRoom = true;
+ }
+ }
+
+ public static void ForgetRemoteUsersNotInRoom()
+ {
+ List toPurge = new List();
+
+ foreach (KeyValuePair kvp in s_instance.remoteUsers)
+ {
+ if (kvp.Value.stillInRoom == false)
+ {
+ toPurge.Add(kvp.Key);
+ }
+ }
+
+ foreach (ulong key in toPurge)
+ {
+ RemoveRemoteUser(key);
+ }
+ }
+
+ public static void LogOutput(string line)
+ {
+ s_instance.LogOutputLine(Time.time + ": " + line);
+ }
+
+ public static bool IsUserInRoom(ulong userID)
+ {
+ return s_instance.remoteUsers.ContainsKey(userID);
+ }
+
+ public static void AddRemoteUser(ulong userID)
+ {
+ RemotePlayer remoteUser = new RemotePlayer();
+
+ remoteUser.RemoteAvatar = Instantiate(s_instance.remoteAvatarPrefab);
+ remoteUser.RemoteAvatar.oculusUserID = userID.ToString();
+ remoteUser.RemoteAvatar.ShowThirdPerson = true;
+ remoteUser.RemoteAvatar.EnableMouthVertexAnimation = true;
+ remoteUser.p2pConnectionState = PeerConnectionState.Unknown;
+ remoteUser.voipConnectionState = PeerConnectionState.Unknown;
+ remoteUser.stillInRoom = true;
+ remoteUser.remoteUserID = userID;
+
+ s_instance.AddUser(userID, ref remoteUser);
+ s_instance.p2pManager.ConnectTo(userID);
+ s_instance.voipManager.ConnectTo(userID);
+
+ remoteUser.voipSource = remoteUser.RemoteAvatar.gameObject.AddComponent();
+ remoteUser.voipSource.senderID = userID;
+
+ s_instance.LogOutputLine("Adding User " + userID);
+ }
+
+ public static void RemoveRemoteUser(ulong userID)
+ {
+ RemotePlayer remoteUser = new RemotePlayer();
+
+ if (s_instance.remoteUsers.TryGetValue(userID, out remoteUser))
+ {
+ Destroy(remoteUser.RemoteAvatar.GetComponent(), 0);
+ Destroy(remoteUser.RemoteAvatar.gameObject, 0);
+ s_instance.remoteUsers.Remove(userID);
+
+ s_instance.LogOutputLine("Removing User " + userID);
+ }
+ }
+
+ public void UpdateVoiceData(short[] pcmData)
+ {
+ float voiceMax = 0.0f;
+ float[] floats = new float[pcmData.Length];
+ for (int n = 0; n < pcmData.Length; n++)
+ {
+ float cur = floats[n] = (float)pcmData[n] / (float)short.MaxValue;
+ if (cur > voiceMax)
+ {
+ voiceMax = cur;
+ }
+ }
+ voiceCurrent = voiceMax;
+ }
+
+ public static void MicFilter(short[] pcmData, System.UIntPtr pcmDataLength, int frequency, int numChannels)
+ {
+ s_instance.UpdateVoiceData(pcmData);
+ }
+
+
+ public static RemotePlayer GetRemoteUser(ulong userID)
+ {
+ RemotePlayer remoteUser = new RemotePlayer();
+
+ if (s_instance.remoteUsers.TryGetValue(userID, out remoteUser))
+ {
+ return remoteUser;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ #endregion
+
+}
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/SocialPlatformManager.cs.meta b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/SocialPlatformManager.cs.meta
new file mode 100644
index 0000000..e34a65d
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/SocialPlatformManager.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 61a76ada1a1960647bf44fc08c5d5743
+timeCreated: 1536104814
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/VoipManager.cs b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/VoipManager.cs
new file mode 100644
index 0000000..13ff185
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/VoipManager.cs
@@ -0,0 +1,72 @@
+using UnityEngine;
+using System.Collections;
+
+using Oculus.Platform;
+using Oculus.Platform.Models;
+
+// Helper class to manage the Voice-over-IP connection to the
+// remote users
+public class VoipManager
+{
+ public VoipManager()
+ {
+ Voip.SetVoipConnectRequestCallback(VoipConnectRequestCallback);
+ Voip.SetVoipStateChangeCallback(VoipStateChangedCallback);
+ }
+
+ public void ConnectTo(ulong userID)
+ {
+ // ID comparison is used to decide who initiates and who gets the Callback
+ if (SocialPlatformManager.MyID < userID)
+ {
+ Voip.Start(userID);
+ SocialPlatformManager.LogOutput("Voip connect to " + userID);
+ }
+ }
+
+
+ public void Disconnect(ulong userID)
+ {
+ if (userID != 0)
+ {
+ Voip.Stop(userID);
+
+ RemotePlayer remote = SocialPlatformManager.GetRemoteUser(userID);
+ if (remote != null)
+ {
+ remote.voipConnectionState = PeerConnectionState.Unknown;
+ }
+ }
+ }
+
+ void VoipConnectRequestCallback(Message msg)
+ {
+ SocialPlatformManager.LogOutput("Voip request from " + msg.Data.ID);
+
+ RemotePlayer remote = SocialPlatformManager.GetRemoteUser(msg.Data.ID);
+ if (remote != null)
+ {
+ SocialPlatformManager.LogOutput("Voip request accepted from " + msg.Data.ID);
+ Voip.Accept(msg.Data.ID);
+ }
+ }
+
+ void VoipStateChangedCallback(Message msg)
+ {
+ SocialPlatformManager.LogOutput("Voip state to " + msg.Data.ID + " changed to " + msg.Data.State);
+
+ RemotePlayer remote = SocialPlatformManager.GetRemoteUser(msg.Data.ID);
+ if (remote != null)
+ {
+ remote.voipConnectionState = msg.Data.State;
+
+ // ID comparison is used to decide who initiates and who gets the Callback
+ if (msg.Data.State == PeerConnectionState.Timeout && SocialPlatformManager.MyID < msg.Data.ID)
+ {
+ // keep trying until hangup!
+ Voip.Start(msg.Data.ID);
+ SocialPlatformManager.LogOutput("Voip re-connect to " + msg.Data.ID);
+ }
+ }
+ }
+}
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/VoipManager.cs.meta b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/VoipManager.cs.meta
new file mode 100644
index 0000000..c2dbb41
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/VoipManager.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: d22b9da5532b0224f82207825f9f6a65
+timeCreated: 1521151723
+licenseType: Store
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures.meta b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures.meta
new file mode 100644
index 0000000..5119448
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: fc164fe2aad000b40a6f426b477793aa
+folderAsset: yes
+timeCreated: 1496779994
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures/GearHelp.png b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures/GearHelp.png
new file mode 100644
index 0000000..a1b1577
Binary files /dev/null and b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures/GearHelp.png differ
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures/GearHelp.png.meta b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures/GearHelp.png.meta
new file mode 100644
index 0000000..9eea27c
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures/GearHelp.png.meta
@@ -0,0 +1,58 @@
+fileFormatVersion: 2
+guid: 0453138effcc80349b11371805f72f5b
+timeCreated: 1497548991
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 7
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures/Help.png b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures/Help.png
new file mode 100644
index 0000000..9f93e8a
Binary files /dev/null and b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures/Help.png differ
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures/Help.png.meta b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures/Help.png.meta
new file mode 100644
index 0000000..90fa1b6
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures/Help.png.meta
@@ -0,0 +1,58 @@
+fileFormatVersion: 2
+guid: c8f5462cc092d0c40ad71773132863e0
+timeCreated: 1496780052
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 7
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/README.txt b/Assets/Oculus/Avatar/Samples/SocialStarter/README.txt
new file mode 100644
index 0000000..095662d
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/README.txt
@@ -0,0 +1,29 @@
+The SocialStarter sample is meant to show how to leverage the Oculus Avatars and Oculus platform features together to make a very basic networked social experience.
+
+Steps to run the sample:
+
+1. Import the Oculus Unity Utilities Package if you don't already have it included in your project. This will provide you with all of the necessary general Oculus Prefabs.
+2. Import the Oculus Avatar SDK Unity Package if you don't already have it included in your project. This will provide you with all of the necessary Avatar Prefabs.
+3. Import the Oculus Platform SDK Unity Package if you don't already have it included in your project. This will provide all of the C# interfaces to the Oculus Platform features.
+4. In the Unity editor menus select "Oculus Avatars > Edit Configuration". Place your AppID in the two fields for Rift AppID and Gear AppID.
+5. In the Unity editor menus select "Oculus Platform > Edit Settings". Place your AppID in the two fields for Rift AppID and Gear AppID.
+6. Make sure the prefabs are set correctly. Select the OVRPlayerController object in the MainScene:
+a) Local Avatar Prefab should be set to the "LocalAvatar (OvrAvatar)" prefab found in the Avatar SDK under "OvrAvatar > Content > Prefabs".
+b) Remote Avatar Prefab should be set to the "RemoteAvatar (OvrAvatar)" prefab found in the Avatar SDK under "OvrAvatar > Content > Prefabs".
+
+How to use
+
+1. When you first start up the sample you are placed in both a virtual room and an online room. In the virtual room the colour of both the floor and the sphere in the middle are used as state indicators:
+
+a) The sphere colour indicates if you are successfully in an online room. Black means the room creation/join failed for some reason, White means you are in an online room.
+b) The floor colour is blue if you are the owner of the room or green if you are just a member of the room.
+
+2. Your left hand should be holding the instructions UI:
+
+Button X: Send an Invite - This will bring up the Oculus Universal Menu which will show a list of your friends that you can invite. This may take a second or two to pop up.
+Button Y: Toggle the sky camera - This allows you to view the scene from a static 3rd person camera.
+Click left Stick: Toggle showing the instructions UI
+Left Stick Analog: Move around the space
+Right Stick Analog: Rotate
+
+3. When a user joins your room a VoIP connection and a P2P connection will be setup. The P2P connection is used to send Avatar updates as well as positional updates.
diff --git a/Assets/Oculus/Avatar/Samples/SocialStarter/README.txt.meta b/Assets/Oculus/Avatar/Samples/SocialStarter/README.txt.meta
new file mode 100644
index 0000000..09e2c72
--- /dev/null
+++ b/Assets/Oculus/Avatar/Samples/SocialStarter/README.txt.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a7a78d98ba50c73429cf004f1635d521
+timeCreated: 1517510514
+licenseType: Store
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts.meta b/Assets/Oculus/Avatar/Scripts.meta
new file mode 100644
index 0000000..4ccec1c
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 1eb18b8db6c77f04c96874806a37143d
+folderAsset: yes
+timeCreated: 1466714102
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatar.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatar.cs
new file mode 100644
index 0000000..1da3dd9
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatar.cs
@@ -0,0 +1,946 @@
+using UnityEngine;
+using System.Collections;
+using System;
+using System.Linq;
+using Oculus.Avatar;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using UnityEngine.Events;
+
+#if UNITY_EDITOR
+using UnityEditor;
+#endif
+
+[System.Serializable]
+public class AvatarLayer
+{
+ public int layerIndex;
+}
+
+#if UNITY_EDITOR
+[CustomPropertyDrawer(typeof(AvatarLayer))]
+public class AvatarLayerPropertyDrawer : PropertyDrawer
+{
+ public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
+ {
+ EditorGUI.BeginProperty(position, GUIContent.none, property);
+ SerializedProperty layerIndex = property.FindPropertyRelative("layerIndex");
+ position = EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), label);
+ layerIndex.intValue = EditorGUI.LayerField(position, layerIndex.intValue);
+ EditorGUI.EndProperty();
+ }
+}
+#endif
+
+[System.Serializable]
+public class PacketRecordSettings
+{
+ internal bool RecordingFrames = false;
+ public float UpdateRate = 1f / 30f; // 30 hz update of packets
+ internal float AccumulatedTime;
+};
+
+public class OvrAvatar : MonoBehaviour
+{
+ public OvrAvatarMaterialManager DefaultBodyMaterialManager;
+ public OvrAvatarMaterialManager DefaultHandMaterialManager;
+
+ public OvrAvatarDriver Driver;
+ public OvrAvatarBase Base;
+ public OvrAvatarBody Body;
+ public OvrAvatarTouchController ControllerLeft;
+ public OvrAvatarTouchController ControllerRight;
+ public OvrAvatarHand HandLeft;
+ public OvrAvatarHand HandRight;
+ public bool RecordPackets;
+ public bool UseSDKPackets = true;
+
+ public bool StartWithControllers;
+ public AvatarLayer FirstPersonLayer;
+ public AvatarLayer ThirdPersonLayer;
+ public bool ShowFirstPerson = true;
+ public bool ShowThirdPerson;
+ public ovrAvatarCapabilities Capabilities = ovrAvatarCapabilities.All;
+ public Shader SurfaceShader;
+ public Shader SurfaceShaderSelfOccluding;
+ public Shader SurfaceShaderPBS;
+ public Shader SurfaceShaderPBSV2Single;
+ public Shader SurfaceShaderPBSV2Combined;
+ public Shader SurfaceShaderPBSV2Simple;
+ public Shader SurfaceShaderPBSV2Loading;
+
+ int renderPartCount = 0;
+ bool showLeftController;
+ bool showRightController;
+ List voiceUpdates = new List();
+
+ public string oculusUserID;
+ internal UInt64 oculusUserIDInternal;
+
+#if UNITY_ANDROID && UNITY_5_5_OR_NEWER && !UNITY_EDITOR
+ bool CombineMeshes = true;
+#else
+ bool CombineMeshes = false;
+#endif
+
+#if UNITY_EDITOR && UNITY_ANDROID
+ bool ForceMobileTextureFormat = true;
+#else
+ bool ForceMobileTextureFormat = false;
+
+#endif
+
+ private bool WaitingForCombinedMesh = false;
+
+ public IntPtr sdkAvatar = IntPtr.Zero;
+ private HashSet assetLoadingIds = new HashSet();
+ private Dictionary trackedComponents =
+ new Dictionary();
+
+ private UnityEvent AssetsDoneLoading = new UnityEvent();
+ bool assetsFinishedLoading = false;
+
+ public Transform LeftHandCustomPose;
+ public Transform RightHandCustomPose;
+ Transform cachedLeftHandCustomPose;
+ Transform[] cachedCustomLeftHandJoints;
+ ovrAvatarTransform[] cachedLeftHandTransforms;
+ Transform cachedRightHandCustomPose;
+ Transform[] cachedCustomRightHandJoints;
+ ovrAvatarTransform[] cachedRightHandTransforms;
+
+
+ private Vector4 clothingAlphaOffset = new Vector4(0f, 0f, 0f, 1f);
+ private UInt64 clothingAlphaTexture = 0;
+
+ public class PacketEventArgs : EventArgs
+ {
+ public readonly OvrAvatarPacket Packet;
+ public PacketEventArgs(OvrAvatarPacket packet)
+ {
+ Packet = packet;
+ }
+ }
+
+ public PacketRecordSettings PacketSettings = new PacketRecordSettings();
+
+ OvrAvatarPacket CurrentUnityPacket;
+
+ public enum HandType
+ {
+ Right,
+ Left,
+
+ Max
+ };
+
+ public enum HandJoint
+ {
+ HandBase,
+ IndexBase,
+ IndexTip,
+ ThumbBase,
+ ThumbTip,
+
+ Max,
+ }
+
+ private static string[,] HandJoints = new string[(int)HandType.Max, (int)HandJoint.Max]
+ {
+ {
+ "hands:r_hand_world",
+ "hands:r_hand_world/hands:b_r_hand/hands:b_r_index1",
+ "hands:r_hand_world/hands:b_r_hand/hands:b_r_index1/hands:b_r_index2/hands:b_r_index3/hands:b_r_index_ignore",
+ "hands:r_hand_world/hands:b_r_hand/hands:b_r_thumb1/hands:b_r_thumb2",
+ "hands:r_hand_world/hands:b_r_hand/hands:b_r_thumb1/hands:b_r_thumb2/hands:b_r_thumb3/hands:b_r_thumb_ignore"
+ },
+ {
+ "hands:l_hand_world",
+ "hands:l_hand_world/hands:b_l_hand/hands:b_l_index1",
+ "hands:l_hand_world/hands:b_l_hand/hands:b_l_index1/hands:b_l_index2/hands:b_l_index3/hands:b_l_index_ignore",
+ "hands:l_hand_world/hands:b_l_hand/hands:b_l_thumb1/hands:b_l_thumb2",
+ "hands:l_hand_world/hands:b_l_hand/hands:b_l_thumb1/hands:b_l_thumb2/hands:b_l_thumb3/hands:b_l_thumb_ignore"
+ }
+ };
+
+#if UNITY_ANDROID
+ internal ovrAvatarAssetLevelOfDetail LevelOfDetail = ovrAvatarAssetLevelOfDetail.Medium;
+#else
+ internal ovrAvatarAssetLevelOfDetail LevelOfDetail = ovrAvatarAssetLevelOfDetail.Highest;
+#endif
+
+ void OnDestroy()
+ {
+ if (sdkAvatar != IntPtr.Zero)
+ {
+ CAPI.ovrAvatar_Destroy(sdkAvatar);
+ }
+ }
+
+ public EventHandler PacketRecorded;
+
+ public void AssetLoadedCallback(OvrAvatarAsset asset)
+ {
+ assetLoadingIds.Remove(asset.assetID);
+ }
+
+ public void CombinedMeshLoadedCallback(IntPtr assetPtr)
+ {
+ if (!WaitingForCombinedMesh)
+ {
+ return;
+ }
+
+ var meshIDs = CAPI.ovrAvatarAsset_GetCombinedMeshIDs(assetPtr);
+ foreach (var id in meshIDs)
+ {
+ assetLoadingIds.Remove(id);
+ }
+
+ CAPI.ovrAvatar_GetCombinedMeshAlphaData(sdkAvatar, ref clothingAlphaTexture, ref clothingAlphaOffset);
+
+ WaitingForCombinedMesh = false;
+ }
+
+ private void AddAvatarComponent(GameObject componentObject, ovrAvatarComponent component)
+ {
+ OvrAvatarComponent ovrComponent = componentObject.AddComponent();
+ trackedComponents.Add(component.name, ovrComponent);
+
+ if (ovrComponent.name == "body")
+ {
+ ovrComponent.ClothingAlphaOffset = clothingAlphaOffset;
+ ovrComponent.ClothingAlphaTexture = clothingAlphaTexture;
+ }
+
+ AddRenderParts(ovrComponent, component, componentObject.transform);
+ }
+
+ private OvrAvatarSkinnedMeshRenderComponent AddSkinnedMeshRenderComponent(GameObject gameObject, ovrAvatarRenderPart_SkinnedMeshRender skinnedMeshRender)
+ {
+ OvrAvatarSkinnedMeshRenderComponent skinnedMeshRenderer = gameObject.AddComponent();
+ skinnedMeshRenderer.Initialize(skinnedMeshRender, SurfaceShader, SurfaceShaderSelfOccluding, ThirdPersonLayer.layerIndex, FirstPersonLayer.layerIndex, renderPartCount++);
+ return skinnedMeshRenderer;
+ }
+
+ private OvrAvatarSkinnedMeshRenderPBSComponent AddSkinnedMeshRenderPBSComponent(GameObject gameObject, ovrAvatarRenderPart_SkinnedMeshRenderPBS skinnedMeshRenderPBS)
+ {
+ OvrAvatarSkinnedMeshRenderPBSComponent skinnedMeshRenderer = gameObject.AddComponent();
+ skinnedMeshRenderer.Initialize(skinnedMeshRenderPBS, SurfaceShaderPBS, ThirdPersonLayer.layerIndex, FirstPersonLayer.layerIndex, renderPartCount++);
+ return skinnedMeshRenderer;
+ }
+
+ private OvrAvatarSkinnedMeshPBSV2RenderComponent AddSkinnedMeshRenderPBSV2Component(
+ IntPtr renderPart,
+ GameObject gameObject,
+ ovrAvatarRenderPart_SkinnedMeshRenderPBS_V2 skinnedMeshRenderPBSV2,
+ OvrAvatarMaterialManager materialManager)
+ {
+ OvrAvatarSkinnedMeshPBSV2RenderComponent skinnedMeshRenderer = gameObject.AddComponent();
+ skinnedMeshRenderer.Initialize(
+ renderPart,
+ skinnedMeshRenderPBSV2,
+ materialManager,
+ ThirdPersonLayer.layerIndex,
+ FirstPersonLayer.layerIndex,
+ renderPartCount++,
+ gameObject.name.Contains("body") && CombineMeshes,
+ LevelOfDetail);
+
+ return skinnedMeshRenderer;
+ }
+
+ private OvrAvatarProjectorRenderComponent AddProjectorRenderComponent(GameObject gameObject, ovrAvatarRenderPart_ProjectorRender projectorRender)
+ {
+ ovrAvatarComponent component = CAPI.ovrAvatarComponent_Get(sdkAvatar, projectorRender.componentIndex);
+ OvrAvatarComponent ovrComponent;
+ if (trackedComponents.TryGetValue(component.name, out ovrComponent))
+ {
+ if (projectorRender.renderPartIndex < ovrComponent.RenderParts.Count)
+ {
+ OvrAvatarRenderComponent targetRenderPart = ovrComponent.RenderParts[(int)projectorRender.renderPartIndex];
+ OvrAvatarProjectorRenderComponent projectorComponent = gameObject.AddComponent();
+ projectorComponent.InitializeProjectorRender(projectorRender, SurfaceShader, targetRenderPart);
+ return projectorComponent;
+ }
+ }
+ return null;
+ }
+
+ static public IntPtr GetRenderPart(ovrAvatarComponent component, UInt32 renderPartIndex)
+ {
+ long offset = Marshal.SizeOf(typeof(IntPtr)) * renderPartIndex;
+ IntPtr marshalPtr = new IntPtr(component.renderParts.ToInt64() + offset);
+ return (IntPtr)Marshal.PtrToStructure(marshalPtr, typeof(IntPtr));
+ }
+
+ private void UpdateAvatarComponent(ovrAvatarComponent component)
+ {
+ OvrAvatarComponent ovrComponent;
+ if (!trackedComponents.TryGetValue(component.name, out ovrComponent))
+ {
+ throw new Exception(string.Format("trackedComponents didn't have {0}", component.name));
+ }
+
+ ovrComponent.UpdateAvatar(component, this);
+ }
+
+ private static string GetRenderPartName(ovrAvatarComponent component, uint renderPartIndex)
+ {
+ return component.name + "_renderPart_" + (int)renderPartIndex;
+ }
+
+ internal static void ConvertTransform(ovrAvatarTransform transform, Transform target)
+ {
+ Vector3 position = transform.position;
+ position.z = -position.z;
+ Quaternion orientation = transform.orientation;
+ orientation.x = -orientation.x;
+ orientation.y = -orientation.y;
+ target.localPosition = position;
+ target.localRotation = orientation;
+ target.localScale = transform.scale;
+ }
+
+ public static ovrAvatarTransform CreateOvrAvatarTransform(Vector3 position, Quaternion orientation)
+ {
+ return new ovrAvatarTransform
+ {
+ position = new Vector3(position.x, position.y, -position.z),
+ orientation = new Quaternion(-orientation.x, -orientation.y, orientation.z, orientation.w),
+ scale = Vector3.one
+ };
+ }
+
+ private void RemoveAvatarComponent(string name)
+ {
+ OvrAvatarComponent componentObject;
+ trackedComponents.TryGetValue(name, out componentObject);
+ Destroy(componentObject.gameObject);
+ trackedComponents.Remove(name);
+ }
+
+ private void UpdateSDKAvatarUnityState()
+ {
+ //Iterate through all the render components
+ UInt32 componentCount = CAPI.ovrAvatarComponent_Count(sdkAvatar);
+ HashSet componentsThisRun = new HashSet();
+ for (UInt32 i = 0; i < componentCount; i++)
+ {
+ IntPtr ptr = CAPI.ovrAvatarComponent_Get_Native(sdkAvatar, i);
+ ovrAvatarComponent component = (ovrAvatarComponent)Marshal.PtrToStructure(ptr, typeof(ovrAvatarComponent));
+ componentsThisRun.Add(component.name);
+ if (!trackedComponents.ContainsKey(component.name))
+ {
+ GameObject componentObject = null;
+ Type specificType = null;
+ if ((Capabilities & ovrAvatarCapabilities.Base) != 0)
+ {
+ ovrAvatarBaseComponent? baseComponent = CAPI.ovrAvatarPose_GetBaseComponent(sdkAvatar);
+ if (baseComponent.HasValue && ptr == baseComponent.Value.renderComponent)
+ {
+ specificType = typeof(OvrAvatarBase);
+ if (Base != null)
+ {
+ componentObject = Base.gameObject;
+ }
+ }
+ }
+
+ if (specificType == null && (Capabilities & ovrAvatarCapabilities.Body) != 0)
+ {
+ ovrAvatarBodyComponent? bodyComponent = CAPI.ovrAvatarPose_GetBodyComponent(sdkAvatar);
+ if (bodyComponent.HasValue && ptr == bodyComponent.Value.renderComponent)
+ {
+ specificType = typeof(OvrAvatarBody);
+ if (Body != null)
+ {
+ componentObject = Body.gameObject;
+ }
+ }
+ }
+
+ if (specificType == null && (Capabilities & ovrAvatarCapabilities.Hands) != 0)
+ {
+ ovrAvatarControllerComponent? controllerComponent = CAPI.ovrAvatarPose_GetLeftControllerComponent(sdkAvatar);
+ if (specificType == null && controllerComponent.HasValue && ptr == controllerComponent.Value.renderComponent)
+ {
+ specificType = typeof(OvrAvatarTouchController);
+ if (ControllerLeft != null)
+ {
+ componentObject = ControllerLeft.gameObject;
+ }
+ }
+
+ controllerComponent = CAPI.ovrAvatarPose_GetRightControllerComponent(sdkAvatar);
+ if (specificType == null && controllerComponent.HasValue && ptr == controllerComponent.Value.renderComponent)
+ {
+ specificType = typeof(OvrAvatarTouchController);
+ if (ControllerRight != null)
+ {
+ componentObject = ControllerRight.gameObject;
+ }
+ }
+
+ ovrAvatarHandComponent? handComponent = CAPI.ovrAvatarPose_GetLeftHandComponent(sdkAvatar);
+ if (specificType == null && handComponent.HasValue && ptr == handComponent.Value.renderComponent)
+ {
+ specificType = typeof(OvrAvatarHand);
+ if (HandLeft != null)
+ {
+ componentObject = HandLeft.gameObject;
+ }
+ }
+
+ handComponent = CAPI.ovrAvatarPose_GetRightHandComponent(sdkAvatar);
+ if (specificType == null && handComponent.HasValue && ptr == handComponent.Value.renderComponent)
+ {
+ specificType = typeof(OvrAvatarHand);
+ if (HandRight != null)
+ {
+ componentObject = HandRight.gameObject;
+ }
+ }
+ }
+
+ // If this is an unknown type, just create an object for the rendering
+ if (componentObject == null && specificType == null)
+ {
+ componentObject = new GameObject();
+ componentObject.name = component.name;
+ componentObject.transform.SetParent(transform);
+ }
+ if (componentObject != null)
+ {
+ AddAvatarComponent(componentObject, component);
+ }
+ }
+ UpdateAvatarComponent(component);
+ }
+ HashSet deletableNames = new HashSet(trackedComponents.Keys);
+ deletableNames.ExceptWith(componentsThisRun);
+ //deletableNames contains the name of all components which are tracked and were
+ //not present in this run
+ foreach (var name in deletableNames)
+ {
+ RemoveAvatarComponent(name);
+ }
+
+ UpdateVoiceBehavior();
+ }
+
+ void UpdateCustomPoses()
+ {
+ // Check to see if the pose roots changed
+ if (UpdatePoseRoot(LeftHandCustomPose, ref cachedLeftHandCustomPose, ref cachedCustomLeftHandJoints, ref cachedLeftHandTransforms))
+ {
+ if (cachedLeftHandCustomPose == null && sdkAvatar != IntPtr.Zero)
+ {
+ CAPI.ovrAvatar_SetLeftHandGesture(sdkAvatar, ovrAvatarHandGesture.Default);
+ }
+ }
+ if (UpdatePoseRoot(RightHandCustomPose, ref cachedRightHandCustomPose, ref cachedCustomRightHandJoints, ref cachedRightHandTransforms))
+ {
+ if (cachedRightHandCustomPose == null && sdkAvatar != IntPtr.Zero)
+ {
+ CAPI.ovrAvatar_SetRightHandGesture(sdkAvatar, ovrAvatarHandGesture.Default);
+ }
+ }
+
+ // Check to see if the custom gestures need to be updated
+ if (sdkAvatar != IntPtr.Zero)
+ {
+ if (cachedLeftHandCustomPose != null && UpdateTransforms(cachedCustomLeftHandJoints, cachedLeftHandTransforms))
+ {
+ CAPI.ovrAvatar_SetLeftHandCustomGesture(sdkAvatar, (uint)cachedLeftHandTransforms.Length, cachedLeftHandTransforms);
+ }
+ if (cachedRightHandCustomPose != null && UpdateTransforms(cachedCustomRightHandJoints, cachedRightHandTransforms))
+ {
+ CAPI.ovrAvatar_SetRightHandCustomGesture(sdkAvatar, (uint)cachedRightHandTransforms.Length, cachedRightHandTransforms);
+ }
+ }
+ }
+
+ static bool UpdatePoseRoot(Transform poseRoot, ref Transform cachedPoseRoot, ref Transform[] cachedPoseJoints, ref ovrAvatarTransform[] transforms)
+ {
+ if (poseRoot == cachedPoseRoot)
+ {
+ return false;
+ }
+
+ if (!poseRoot)
+ {
+ cachedPoseRoot = null;
+ cachedPoseJoints = null;
+ transforms = null;
+ }
+ else
+ {
+ List joints = new List();
+ OrderJoints(poseRoot, joints);
+ cachedPoseRoot = poseRoot;
+ cachedPoseJoints = joints.ToArray();
+ transforms = new ovrAvatarTransform[joints.Count];
+ }
+ return true;
+ }
+
+ static bool UpdateTransforms(Transform[] joints, ovrAvatarTransform[] transforms)
+ {
+ bool updated = false;
+ for (int i = 0; i < joints.Length; ++i)
+ {
+ Transform joint = joints[i];
+ ovrAvatarTransform transform = CreateOvrAvatarTransform(joint.localPosition, joint.localRotation);
+ if (transform.position != transforms[i].position || transform.orientation != transforms[i].orientation)
+ {
+ transforms[i] = transform;
+ updated = true;
+ }
+ }
+ return updated;
+ }
+
+
+ private static void OrderJoints(Transform transform, List joints)
+ {
+ joints.Add(transform);
+ for (int i = 0; i < transform.childCount; ++i)
+ {
+ Transform child = transform.GetChild(i);
+ OrderJoints(child, joints);
+ }
+ }
+
+ void AvatarSpecificationCallback(IntPtr avatarSpecification)
+ {
+#if UNITY_ANDROID
+ Capabilities &= ~ovrAvatarCapabilities.BodyTilt;
+#endif
+ sdkAvatar = CAPI.ovrAvatar_Create(avatarSpecification, Capabilities);
+ ShowLeftController(showLeftController);
+ ShowRightController(showRightController);
+
+ //Fetch all the assets that this avatar uses.
+ UInt32 assetCount = CAPI.ovrAvatar_GetReferencedAssetCount(sdkAvatar);
+ for (UInt32 i = 0; i < assetCount; ++i)
+ {
+ UInt64 id = CAPI.ovrAvatar_GetReferencedAsset(sdkAvatar, i);
+ if (OvrAvatarSDKManager.Instance.GetAsset(id) == null)
+ {
+ OvrAvatarSDKManager.Instance.BeginLoadingAsset(
+ id,
+ LevelOfDetail,
+ AssetLoadedCallback);
+
+ assetLoadingIds.Add(id);
+ }
+ }
+
+ if (CombineMeshes)
+ {
+ OvrAvatarSDKManager.Instance.RegisterCombinedMeshCallback(
+ sdkAvatar,
+ CombinedMeshLoadedCallback);
+ }
+ }
+
+ void Start()
+ {
+#if !UNITY_ANDROID
+ if (CombineMeshes)
+ {
+ CombineMeshes = false;
+ AvatarLogger.Log("Combine Meshes Currently Only Supported On Android");
+ }
+#endif
+
+#if !UNITY_5_5_OR_NEWER
+ if (CombineMeshes)
+ {
+ CombineMeshes = false;
+ AvatarLogger.LogWarning("Unity Version too old to use Combined Mesh Shader, required 5.5.0+");
+ }
+#endif
+
+ try
+ {
+ oculusUserIDInternal = UInt64.Parse(oculusUserID);
+ }
+ catch (Exception)
+ {
+ oculusUserIDInternal = 0;
+
+ AvatarLogger.LogWarning("Invalid Oculus User ID Format");
+ }
+
+ AvatarLogger.Log("Starting OvrAvatar " + gameObject.name);
+ AvatarLogger.Log(AvatarLogger.Tab + "LOD: " + LevelOfDetail.ToString());
+ AvatarLogger.Log(AvatarLogger.Tab + "Combine Meshes: " + CombineMeshes);
+ AvatarLogger.Log(AvatarLogger.Tab + "Force Mobile Textures: " + ForceMobileTextureFormat);
+ AvatarLogger.Log(AvatarLogger.Tab + "Oculus User ID: " + oculusUserIDInternal);
+
+ ShowLeftController(StartWithControllers);
+ ShowRightController(StartWithControllers);
+ OvrAvatarSDKManager.Instance.RequestAvatarSpecification(
+ oculusUserIDInternal,
+ this.AvatarSpecificationCallback,
+ CombineMeshes,
+ LevelOfDetail,
+ ForceMobileTextureFormat);
+
+ WaitingForCombinedMesh = CombineMeshes;
+ Driver.Mode = UseSDKPackets ? OvrAvatarDriver.PacketMode.SDK : OvrAvatarDriver.PacketMode.Unity;
+ }
+
+ void Update()
+ {
+ if (sdkAvatar == IntPtr.Zero)
+ {
+ return;
+ }
+
+ if (Driver != null)
+ {
+ Driver.UpdateTransforms(sdkAvatar);
+
+ foreach (float[] voiceUpdate in voiceUpdates)
+ {
+ CAPI.ovrAvatarPose_UpdateVoiceVisualization(sdkAvatar, voiceUpdate);
+ }
+
+ voiceUpdates.Clear();
+
+ CAPI.ovrAvatarPose_Finalize(sdkAvatar, Time.deltaTime);
+ }
+
+ if (RecordPackets)
+ {
+ RecordFrame();
+ }
+
+ if (assetLoadingIds.Count == 0)
+ {
+ UpdateSDKAvatarUnityState();
+ UpdateCustomPoses();
+
+ if (!assetsFinishedLoading)
+ {
+ AssetsDoneLoading.Invoke();
+ assetsFinishedLoading = true;
+ }
+ }
+ }
+
+ public static ovrAvatarHandInputState CreateInputState(ovrAvatarTransform transform, OvrAvatarDriver.ControllerPose pose)
+ {
+ ovrAvatarHandInputState inputState = new ovrAvatarHandInputState();
+ inputState.transform = transform;
+ inputState.buttonMask = pose.buttons;
+ inputState.touchMask = pose.touches;
+ inputState.joystickX = pose.joystickPosition.x;
+ inputState.joystickY = pose.joystickPosition.y;
+ inputState.indexTrigger = pose.indexTrigger;
+ inputState.handTrigger = pose.handTrigger;
+ inputState.isActive = pose.isActive;
+ return inputState;
+ }
+
+ public void ShowControllers(bool show)
+ {
+ ShowLeftController(show);
+ ShowRightController(show);
+ }
+
+ public void ShowLeftController(bool show)
+ {
+ if (sdkAvatar != IntPtr.Zero)
+ {
+ CAPI.ovrAvatar_SetLeftControllerVisibility(sdkAvatar, show);
+ }
+ showLeftController = show;
+ }
+
+ public void ShowRightController(bool show)
+ {
+ if (sdkAvatar != IntPtr.Zero)
+ {
+ CAPI.ovrAvatar_SetRightControllerVisibility(sdkAvatar, show);
+ }
+ showRightController = show;
+ }
+
+ public void UpdateVoiceVisualization(float[] voiceSamples)
+ {
+ voiceUpdates.Add(voiceSamples);
+ }
+
+ void RecordFrame()
+ {
+ if(UseSDKPackets)
+ {
+ RecordSDKFrame();
+ }
+ else
+ {
+ RecordUnityFrame();
+ }
+ }
+
+ // Meant to be used mutually exclusively with RecordSDKFrame to give user more options to optimize or tweak packet data
+ private void RecordUnityFrame()
+ {
+ var deltaSeconds = Time.deltaTime;
+ var frame = Driver.GetCurrentPose();
+ // If this is our first packet, store the pose as the initial frame
+ if (CurrentUnityPacket == null)
+ {
+ CurrentUnityPacket = new OvrAvatarPacket(frame);
+ deltaSeconds = 0;
+ }
+
+ float recordedSeconds = 0;
+ while (recordedSeconds < deltaSeconds)
+ {
+ float remainingSeconds = deltaSeconds - recordedSeconds;
+ float remainingPacketSeconds = PacketSettings.UpdateRate - CurrentUnityPacket.Duration;
+
+ // If we're not going to fill the packet, just add the frame
+ if (remainingSeconds < remainingPacketSeconds)
+ {
+ CurrentUnityPacket.AddFrame(frame, remainingSeconds);
+ recordedSeconds += remainingSeconds;
+ }
+
+ // If we're going to fill the packet, interpolate the pose, send the packet,
+ // and open a new one
+ else
+ {
+ // Interpolate between the packet's last frame and our target pose
+ // to compute a pose at the end of the packet time.
+ OvrAvatarDriver.PoseFrame a = CurrentUnityPacket.FinalFrame;
+ OvrAvatarDriver.PoseFrame b = frame;
+ float t = remainingPacketSeconds / remainingSeconds;
+ OvrAvatarDriver.PoseFrame intermediatePose = OvrAvatarDriver.PoseFrame.Interpolate(a, b, t);
+ CurrentUnityPacket.AddFrame(intermediatePose, remainingPacketSeconds);
+ recordedSeconds += remainingPacketSeconds;
+
+ // Broadcast the recorded packet
+ if (PacketRecorded != null)
+ {
+ PacketRecorded(this, new PacketEventArgs(CurrentUnityPacket));
+ }
+
+ // Open a new packet
+ CurrentUnityPacket = new OvrAvatarPacket(intermediatePose);
+ }
+ }
+ }
+
+ private void RecordSDKFrame()
+ {
+ if (sdkAvatar == IntPtr.Zero)
+ {
+ return;
+ }
+
+ if (!PacketSettings.RecordingFrames)
+ {
+ CAPI.ovrAvatarPacket_BeginRecording(sdkAvatar);
+ PacketSettings.AccumulatedTime = 0.0f;
+ PacketSettings.RecordingFrames = true;
+ }
+
+ PacketSettings.AccumulatedTime += Time.deltaTime;
+
+ if (PacketSettings.AccumulatedTime >= PacketSettings.UpdateRate)
+ {
+ PacketSettings.AccumulatedTime = 0.0f;
+ var packet = CAPI.ovrAvatarPacket_EndRecording(sdkAvatar);
+ CAPI.ovrAvatarPacket_BeginRecording(sdkAvatar);
+
+ if (PacketRecorded != null)
+ {
+ PacketRecorded(this, new PacketEventArgs(new OvrAvatarPacket { ovrNativePacket = packet }));
+ }
+
+ CAPI.ovrAvatarPacket_Free(packet);
+ }
+ }
+
+ private void AddRenderParts(
+ OvrAvatarComponent ovrComponent,
+ ovrAvatarComponent component,
+ Transform parent)
+ {
+ for (UInt32 renderPartIndex = 0; renderPartIndex < component.renderPartCount; renderPartIndex++)
+ {
+ GameObject renderPartObject = new GameObject();
+ renderPartObject.name = GetRenderPartName(component, renderPartIndex);
+ renderPartObject.transform.SetParent(parent);
+ IntPtr renderPart = GetRenderPart(component, renderPartIndex);
+ ovrAvatarRenderPartType type = CAPI.ovrAvatarRenderPart_GetType(renderPart);
+ OvrAvatarRenderComponent ovrRenderPart;
+ switch (type)
+ {
+ case ovrAvatarRenderPartType.SkinnedMeshRender:
+ ovrRenderPart = AddSkinnedMeshRenderComponent(renderPartObject, CAPI.ovrAvatarRenderPart_GetSkinnedMeshRender(renderPart));
+ break;
+ case ovrAvatarRenderPartType.SkinnedMeshRenderPBS:
+ ovrRenderPart = AddSkinnedMeshRenderPBSComponent(renderPartObject, CAPI.ovrAvatarRenderPart_GetSkinnedMeshRenderPBS(renderPart));
+ break;
+ case ovrAvatarRenderPartType.ProjectorRender:
+ ovrRenderPart = AddProjectorRenderComponent(renderPartObject, CAPI.ovrAvatarRenderPart_GetProjectorRender(renderPart));
+ break;
+ case ovrAvatarRenderPartType.SkinnedMeshRenderPBS_V2:
+ {
+ OvrAvatarMaterialManager materialManager = null;
+
+ if (ovrComponent.name == "body")
+ {
+ materialManager = DefaultBodyMaterialManager;
+ }
+ else if( ovrComponent.name.Contains("hand"))
+ {
+ materialManager = DefaultHandMaterialManager;
+ }
+
+ ovrRenderPart = AddSkinnedMeshRenderPBSV2Component(
+ renderPart,
+ renderPartObject,
+ CAPI.ovrAvatarRenderPart_GetSkinnedMeshRenderPBSV2(renderPart),
+ materialManager);
+ }
+ break;
+ default:
+ throw new NotImplementedException(string.Format("Unsupported render part type: {0}", type.ToString()));
+ }
+
+ ovrComponent.RenderParts.Add(ovrRenderPart);
+ }
+ }
+
+ public void RefreshBodyParts()
+ {
+ OvrAvatarComponent component;
+ if (trackedComponents.TryGetValue("body", out component) && Body != null)
+ {
+ foreach (var part in component.RenderParts)
+ {
+ Destroy(part.gameObject);
+ }
+
+ component.RenderParts.Clear();
+
+ ovrAvatarBodyComponent? sdkBodyComponent = CAPI.ovrAvatarPose_GetBodyComponent(sdkAvatar);
+ if (sdkBodyComponent != null)
+ {
+ ovrAvatarComponent sdKComponent = (ovrAvatarComponent)Marshal.PtrToStructure(sdkBodyComponent.Value.renderComponent, typeof(ovrAvatarComponent));
+ AddRenderParts(component, sdKComponent, Body.gameObject.transform);
+ }
+ else
+ {
+ throw new Exception("Destroyed the body component, but didn't find a new one in the SDK");
+ }
+ }
+ }
+
+ public ovrAvatarBodyComponent? GetBodyComponent()
+ {
+ return CAPI.ovrAvatarPose_GetBodyComponent(sdkAvatar);
+ }
+
+
+ public Transform GetHandTransform(HandType hand, HandJoint joint)
+ {
+ if (hand >= HandType.Max || joint >= HandJoint.Max)
+ {
+ return null;
+ }
+
+ var HandObject = hand == HandType.Left ? HandLeft : HandRight;
+
+ if (HandObject != null)
+ {
+ var AvatarComponent = HandObject.GetComponent();
+ if (AvatarComponent != null && AvatarComponent.RenderParts.Count > 0)
+ {
+ var SkinnedMesh = AvatarComponent.RenderParts[0];
+ return SkinnedMesh.transform.Find(HandJoints[(int)hand, (int)joint]);
+ }
+ }
+
+ return null;
+ }
+
+ public void GetPointingDirection(HandType hand, ref Vector3 forward, ref Vector3 up)
+ {
+ Transform handBase = GetHandTransform(hand, HandJoint.HandBase);
+
+ if (handBase != null)
+ {
+ forward = handBase.forward;
+ up = handBase.up;
+ }
+ }
+
+ public Transform GetMouthTransform()
+ {
+ OvrAvatarComponent component;
+ if (trackedComponents.TryGetValue("voice", out component))
+ {
+ if (component.RenderParts.Count > 0)
+ {
+ return component.RenderParts[0].transform;
+ }
+ }
+
+ return null;
+ }
+
+ static Vector3 MOUTH_POSITION_OFFSET = new Vector3(0, -0.018f, 0.1051f);
+ static string VOICE_PROPERTY = "_Voice";
+ static string MOUTH_POSITION_PROPERTY = "_MouthPosition";
+ static string MOUTH_DIRECTION_PROPERTY = "_MouthDirection";
+ static string MOUTH_SCALE_PROPERTY = "_MouthEffectScale";
+
+ static float MOUTH_SCALE_GLOBAL = 0.007f;
+ static float MOUTH_MAX_GLOBAL = 0.007f;
+ static string NECK_JONT = "root_JNT/body_JNT/chest_JNT/neckBase_JNT/neck_JNT";
+
+ public float VoiceAmplitude = 0f;
+ public bool EnableMouthVertexAnimation = false;
+
+ private void UpdateVoiceBehavior()
+ {
+ if (!EnableMouthVertexAnimation)
+ {
+ return;
+ }
+
+ OvrAvatarComponent component;
+ if (trackedComponents.TryGetValue("body", out component))
+ {
+ VoiceAmplitude = Mathf.Clamp(VoiceAmplitude, 0f, 1f);
+
+ if (component.RenderParts.Count > 0)
+ {
+ var material = component.RenderParts[0].mesh.sharedMaterial;
+ var neckJoint = component.RenderParts[0].mesh.transform.Find(NECK_JONT);
+ var scaleDiff = neckJoint.TransformPoint(Vector3.up) - neckJoint.position;
+
+ material.SetFloat(MOUTH_SCALE_PROPERTY, scaleDiff.magnitude);
+
+ material.SetFloat(
+ VOICE_PROPERTY,
+ Mathf.Min(scaleDiff.magnitude * MOUTH_MAX_GLOBAL, scaleDiff.magnitude * VoiceAmplitude * MOUTH_SCALE_GLOBAL));
+
+ material.SetVector(
+ MOUTH_POSITION_PROPERTY,
+ neckJoint.TransformPoint(MOUTH_POSITION_OFFSET));
+
+ material.SetVector(MOUTH_DIRECTION_PROPERTY, neckJoint.up);
+ }
+ }
+ }
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatar.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatar.cs.meta
new file mode 100644
index 0000000..c184790
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatar.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 00f3402a2ea5bff4880c0313515240cd
+timeCreated: 1464046614
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarAsset.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarAsset.cs
new file mode 100644
index 0000000..ba1238a
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarAsset.cs
@@ -0,0 +1,5 @@
+using System;
+
+public class OvrAvatarAsset {
+ public UInt64 assetID;
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarAsset.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarAsset.cs.meta
new file mode 100644
index 0000000..b7f6d51
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarAsset.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: a7045bb39115f484a89ecaa778a2a60f
+timeCreated: 1475521356
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarAssetMesh.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarAssetMesh.cs
new file mode 100644
index 0000000..c3d05e6
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarAssetMesh.cs
@@ -0,0 +1,219 @@
+using System;
+using Oculus.Avatar;
+using UnityEngine;
+using System.Runtime.InteropServices;
+
+public class OvrAvatarAssetMesh : OvrAvatarAsset
+{
+ public Mesh mesh;
+ private ovrAvatarSkinnedMeshPose skinnedBindPose;
+ public string[] jointNames;
+
+ public OvrAvatarAssetMesh(UInt64 _assetId, IntPtr asset, ovrAvatarAssetType meshType)
+ {
+ assetID = _assetId;
+ mesh = new Mesh();
+ mesh.name = "Procedural Geometry for asset " + _assetId;
+
+ switch (meshType)
+ {
+ case ovrAvatarAssetType.Mesh:
+ {
+ ovrAvatarMeshAssetData meshAssetData = CAPI.ovrAvatarAsset_GetMeshData(asset);
+
+ AvatarLogger.Log(
+ "OvrAvatarAssetMesh: "
+ + _assetId
+ + " "
+ + meshType.ToString()
+ + " VertexCount:"
+ + meshAssetData.vertexCount);
+
+
+ long vertexCount = (long)meshAssetData.vertexCount;
+ Vector3[] vertices = new Vector3[vertexCount];
+ Vector3[] normals = new Vector3[vertexCount];
+ Vector4[] tangents = new Vector4[vertexCount];
+ Vector2[] uv = new Vector2[vertexCount];
+ Color[] colors = new Color[vertexCount];
+ BoneWeight[] boneWeights = new BoneWeight[vertexCount];
+
+ long vertexSize = (long)Marshal.SizeOf(typeof(ovrAvatarMeshVertex));
+ long vertexBufferStart = meshAssetData.vertexBuffer.ToInt64();
+
+ for (long i = 0; i < vertexCount; i++)
+ {
+ long offset = vertexSize * i;
+
+ ovrAvatarMeshVertex vertex = (ovrAvatarMeshVertex)Marshal.PtrToStructure(new IntPtr(vertexBufferStart + offset), typeof(ovrAvatarMeshVertex));
+ vertices[i] = new Vector3(vertex.x, vertex.y, -vertex.z);
+ normals[i] = new Vector3(vertex.nx, vertex.ny, -vertex.nz);
+ tangents[i] = new Vector4(vertex.tx, vertex.ty, -vertex.tz, vertex.tw);
+ uv[i] = new Vector2(vertex.u, vertex.v);
+ colors[i] = new Color(0, 0, 0, 1);
+
+ boneWeights[i].boneIndex0 = vertex.blendIndices[0];
+ boneWeights[i].boneIndex1 = vertex.blendIndices[1];
+ boneWeights[i].boneIndex2 = vertex.blendIndices[2];
+ boneWeights[i].boneIndex3 = vertex.blendIndices[3];
+ boneWeights[i].weight0 = vertex.blendWeights[0];
+ boneWeights[i].weight1 = vertex.blendWeights[1];
+ boneWeights[i].weight2 = vertex.blendWeights[2];
+ boneWeights[i].weight3 = vertex.blendWeights[3];
+ }
+
+ mesh.vertices = vertices;
+ mesh.normals = normals;
+ mesh.uv = uv;
+ mesh.tangents = tangents;
+ mesh.boneWeights = boneWeights;
+ mesh.colors = colors;
+
+ skinnedBindPose = meshAssetData.skinnedBindPose;
+
+ ulong indexCount = meshAssetData.indexCount;
+ Int16[] indices = new Int16[indexCount];
+ IntPtr indexBufferPtr = meshAssetData.indexBuffer;
+ Marshal.Copy(indexBufferPtr, indices, 0, (int)indexCount);
+ Int32[] triangles = new Int32[indexCount];
+ for (ulong i = 0; i < indexCount; i += 3)
+ {
+ triangles[i + 2] = (Int32)indices[i];
+ triangles[i + 1] = (Int32)indices[i + 1];
+ triangles[i] = (Int32)indices[i + 2];
+ }
+ mesh.triangles = triangles;
+
+ UInt32 jointCount = skinnedBindPose.jointCount;
+ jointNames = new string[jointCount];
+ for (UInt32 i = 0; i < jointCount; i++)
+ {
+ jointNames[i] = Marshal.PtrToStringAnsi(skinnedBindPose.jointNames[i]);
+ }
+ }
+ break;
+
+ case ovrAvatarAssetType.CombinedMesh:
+ {
+ ovrAvatarMeshAssetDataV2 meshAssetData = CAPI.ovrAvatarAsset_GetCombinedMeshData(asset);
+
+ AvatarLogger.Log(
+ "OvrAvatarAssetMesh: "
+ + _assetId
+ + " "
+ + meshType.ToString()
+ + " VertexCount:"
+ + meshAssetData.vertexCount);
+
+ long vertexCount = (long)meshAssetData.vertexCount;
+ Vector3[] vertices = new Vector3[vertexCount];
+ Vector3[] normals = new Vector3[vertexCount];
+ Vector4[] tangents = new Vector4[vertexCount];
+ Vector2[] uv = new Vector2[vertexCount];
+ Color[] colors = new Color[vertexCount];
+ BoneWeight[] boneWeights = new BoneWeight[vertexCount];
+
+ long vertexSize = (long)Marshal.SizeOf(typeof(ovrAvatarMeshVertexV2));
+ long vertexBufferStart = meshAssetData.vertexBuffer.ToInt64();
+
+ for (long i = 0; i < vertexCount; i++)
+ {
+ long offset = vertexSize * i;
+
+ ovrAvatarMeshVertexV2 vertex = (ovrAvatarMeshVertexV2)Marshal.PtrToStructure(new IntPtr(vertexBufferStart + offset), typeof(ovrAvatarMeshVertexV2));
+ vertices[i] = new Vector3(vertex.x, vertex.y, -vertex.z);
+ normals[i] = new Vector3(vertex.nx, vertex.ny, -vertex.nz);
+ tangents[i] = new Vector4(vertex.tx, vertex.ty, -vertex.tz, vertex.tw);
+ uv[i] = new Vector2(vertex.u, vertex.v);
+ colors[i] = new Color(vertex.r, vertex.g, vertex.b, vertex.a);
+
+ boneWeights[i].boneIndex0 = vertex.blendIndices[0];
+ boneWeights[i].boneIndex1 = vertex.blendIndices[1];
+ boneWeights[i].boneIndex2 = vertex.blendIndices[2];
+ boneWeights[i].boneIndex3 = vertex.blendIndices[3];
+ boneWeights[i].weight0 = vertex.blendWeights[0];
+ boneWeights[i].weight1 = vertex.blendWeights[1];
+ boneWeights[i].weight2 = vertex.blendWeights[2];
+ boneWeights[i].weight3 = vertex.blendWeights[3];
+ }
+
+ mesh.vertices = vertices;
+ mesh.normals = normals;
+ mesh.uv = uv;
+ mesh.tangents = tangents;
+ mesh.boneWeights = boneWeights;
+ mesh.colors = colors;
+
+ skinnedBindPose = meshAssetData.skinnedBindPose;
+
+ ulong indexCount = meshAssetData.indexCount;
+ Int16[] indices = new Int16[indexCount];
+ IntPtr indexBufferPtr = meshAssetData.indexBuffer;
+ Marshal.Copy(indexBufferPtr, indices, 0, (int)indexCount);
+ Int32[] triangles = new Int32[indexCount];
+ for (ulong i = 0; i < indexCount; i += 3)
+ {
+ triangles[i + 2] = (Int32)indices[i];
+ triangles[i + 1] = (Int32)indices[i + 1];
+ triangles[i] = (Int32)indices[i + 2];
+ }
+ mesh.triangles = triangles;
+
+ UInt32 jointCount = skinnedBindPose.jointCount;
+ jointNames = new string[jointCount];
+ for (UInt32 i = 0; i < jointCount; i++)
+ {
+ jointNames[i] = Marshal.PtrToStringAnsi(skinnedBindPose.jointNames[i]);
+ }
+ }
+ break;
+
+ default:
+ throw new Exception("Bad Mesh Asset Type");
+ }
+ }
+
+ public SkinnedMeshRenderer CreateSkinnedMeshRendererOnObject(GameObject target)
+ {
+ SkinnedMeshRenderer skinnedMeshRenderer = target.AddComponent();
+ skinnedMeshRenderer.sharedMesh = mesh;
+ mesh.name = "AvatarMesh_" + assetID;
+ UInt32 jointCount = skinnedBindPose.jointCount;
+ GameObject[] bones = new GameObject[jointCount];
+ Transform[] boneTransforms = new Transform[jointCount];
+ Matrix4x4[] bindPoses = new Matrix4x4[jointCount];
+ for (UInt32 i = 0; i < jointCount; i++)
+ {
+ bones[i] = new GameObject();
+ boneTransforms[i] = bones[i].transform;
+ bones[i].name = jointNames[i];
+ int parentIndex = skinnedBindPose.jointParents[i];
+ if (parentIndex == -1)
+ {
+ bones[i].transform.parent = skinnedMeshRenderer.transform;
+ skinnedMeshRenderer.rootBone = bones[i].transform;
+ }
+ else
+ {
+ bones[i].transform.parent = bones[parentIndex].transform;
+ }
+
+ // Set the position relative to the parent
+ Vector3 position = skinnedBindPose.jointTransform[i].position;
+ position.z = -position.z;
+ bones[i].transform.localPosition = position;
+
+ Quaternion orientation = skinnedBindPose.jointTransform[i].orientation;
+ orientation.x = -orientation.x;
+ orientation.y = -orientation.y;
+ bones[i].transform.localRotation = orientation;
+
+ bones[i].transform.localScale = skinnedBindPose.jointTransform[i].scale;
+
+ bindPoses[i] = bones[i].transform.worldToLocalMatrix * skinnedMeshRenderer.transform.localToWorldMatrix;
+ }
+ skinnedMeshRenderer.bones = boneTransforms;
+ mesh.bindposes = bindPoses;
+ return skinnedMeshRenderer;
+ }
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarAssetMesh.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarAssetMesh.cs.meta
new file mode 100644
index 0000000..dbd05ea
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarAssetMesh.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 80be643e69fa4a4478a5cb27a190bbd2
+timeCreated: 1475522461
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarAssetTexture.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarAssetTexture.cs
new file mode 100644
index 0000000..4026b08
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarAssetTexture.cs
@@ -0,0 +1,58 @@
+using System;
+using Oculus.Avatar;
+using UnityEngine;
+
+public class OvrAvatarAssetTexture : OvrAvatarAsset {
+ public Texture2D texture;
+
+ private const int ASTCHeaderSize = 16;
+
+ public OvrAvatarAssetTexture(UInt64 _assetId, IntPtr asset) {
+ assetID = _assetId;
+ ovrAvatarTextureAssetData textureAssetData = CAPI.ovrAvatarAsset_GetTextureData(asset);
+ TextureFormat format;
+ IntPtr textureData = textureAssetData.textureData;
+ int textureDataSize = (int)textureAssetData.textureDataSize;
+
+ AvatarLogger.Log(
+ "OvrAvatarAssetTexture - "
+ + _assetId
+ + ": "
+ + textureAssetData.format.ToString()
+ + " "
+ + textureAssetData.sizeX
+ + "x"
+ + textureAssetData.sizeY);
+
+ switch (textureAssetData.format)
+ {
+ case ovrAvatarTextureFormat.RGB24:
+ format = TextureFormat.RGB24;
+ break;
+ case ovrAvatarTextureFormat.DXT1:
+ format = TextureFormat.DXT1;
+ break;
+ case ovrAvatarTextureFormat.DXT5:
+ format = TextureFormat.DXT5;
+ break;
+ case ovrAvatarTextureFormat.ASTC_RGB_6x6:
+ format = TextureFormat.ASTC_RGB_6x6;
+ textureData = new IntPtr(textureData.ToInt64() + ASTCHeaderSize);
+ textureDataSize -= ASTCHeaderSize;
+ break;
+ case ovrAvatarTextureFormat.ASTC_RGB_6x6_MIPMAPS:
+ format = TextureFormat.ASTC_RGB_6x6;
+ break;
+ default:
+ throw new NotImplementedException(
+ string.Format("Unsupported texture format {0}",
+ textureAssetData.format.ToString()));
+ }
+ texture = new Texture2D(
+ (int)textureAssetData.sizeX, (int)textureAssetData.sizeY,
+ format, textureAssetData.mipCount > 1,
+ QualitySettings.activeColorSpace == ColorSpace.Gamma ? false : true);
+ texture.LoadRawTextureData(textureData, textureDataSize);
+ texture.Apply(true, false);
+ }
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarAssetTexture.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarAssetTexture.cs.meta
new file mode 100644
index 0000000..d67df96
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarAssetTexture.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 8a3167eed50e56346be5b1cc65ad7226
+timeCreated: 1475522480
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarBase.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarBase.cs
new file mode 100644
index 0000000..8559fc1
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarBase.cs
@@ -0,0 +1,8 @@
+using UnityEngine;
+using System.Collections;
+using System.Collections.Generic;
+using System;
+
+public class OvrAvatarBase : MonoBehaviour
+{
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarBase.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarBase.cs.meta
new file mode 100644
index 0000000..aed70e9
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarBase.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: a0e33623ec5372748b5703f61a4df82d
+timeCreated: 1477606822
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarBody.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarBody.cs
new file mode 100644
index 0000000..3e66aef
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarBody.cs
@@ -0,0 +1,11 @@
+using UnityEngine;
+using System.Collections;
+using System.Collections.Generic;
+using System;
+
+public class OvrAvatarBody : MonoBehaviour
+{
+ public virtual void UpdatePose(float voiceAmplitude)
+ {
+ }
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarBody.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarBody.cs.meta
new file mode 100644
index 0000000..ccb2165
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarBody.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: eb7a6650b6cb46545967d3b380b7396c
+timeCreated: 1466814542
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarComponent.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarComponent.cs
new file mode 100644
index 0000000..38cd6c7
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarComponent.cs
@@ -0,0 +1,153 @@
+using System;
+using UnityEngine;
+using System.Collections;
+using System.Collections.Generic;
+using Oculus.Avatar;
+using System.Threading;
+
+public class OvrAvatarComponent : MonoBehaviour
+{
+
+ public static readonly string[] LayerKeywords = new[] { "LAYERS_0", "LAYERS_1", "LAYERS_2", "LAYERS_3", "LAYERS_4", "LAYERS_5", "LAYERS_6", "LAYERS_7", "LAYERS_8", };
+ public static readonly string[] LayerSampleModeParameters = new[] { "_LayerSampleMode0", "_LayerSampleMode1", "_LayerSampleMode2", "_LayerSampleMode3", "_LayerSampleMode4", "_LayerSampleMode5", "_LayerSampleMode6", "_LayerSampleMode7", };
+ public static readonly string[] LayerBlendModeParameters = new[] { "_LayerBlendMode0", "_LayerBlendMode1", "_LayerBlendMode2", "_LayerBlendMode3", "_LayerBlendMode4", "_LayerBlendMode5", "_LayerBlendMode6", "_LayerBlendMode7", };
+ public static readonly string[] LayerMaskTypeParameters = new[] { "_LayerMaskType0", "_LayerMaskType1", "_LayerMaskType2", "_LayerMaskType3", "_LayerMaskType4", "_LayerMaskType5", "_LayerMaskType6", "_LayerMaskType7", };
+ public static readonly string[] LayerColorParameters = new[] { "_LayerColor0", "_LayerColor1", "_LayerColor2", "_LayerColor3", "_LayerColor4", "_LayerColor5", "_LayerColor6", "_LayerColor7", };
+ public static readonly string[] LayerSurfaceParameters = new[] { "_LayerSurface0", "_LayerSurface1", "_LayerSurface2", "_LayerSurface3", "_LayerSurface4", "_LayerSurface5", "_LayerSurface6", "_LayerSurface7", };
+ public static readonly string[] LayerSampleParametersParameters = new[] { "_LayerSampleParameters0", "_LayerSampleParameters1", "_LayerSampleParameters2", "_LayerSampleParameters3", "_LayerSampleParameters4", "_LayerSampleParameters5", "_LayerSampleParameters6", "_LayerSampleParameters7", };
+ public static readonly string[] LayerMaskParametersParameters = new[] { "_LayerMaskParameters0", "_LayerMaskParameters1", "_LayerMaskParameters2", "_LayerMaskParameters3", "_LayerMaskParameters4", "_LayerMaskParameters5", "_LayerMaskParameters6", "_LayerMaskParameters7", };
+ public static readonly string[] LayerMaskAxisParameters = new[] { "_LayerMaskAxis0", "_LayerMaskAxis1", "_LayerMaskAxis2", "_LayerMaskAxis3", "_LayerMaskAxis4", "_LayerMaskAxis5", "_LayerMaskAxis6", "_LayerMaskAxis7", };
+
+ private Dictionary materialStates = new Dictionary();
+ public List RenderParts = new List();
+
+ private bool DrawSkeleton = false;
+ private bool FirstMaterialUpdate = true;
+
+ public ulong ClothingAlphaTexture = 0;
+ public Vector4 ClothingAlphaOffset;
+
+ public void UpdateAvatar(ovrAvatarComponent component, OvrAvatar avatar)
+ {
+ OvrAvatar.ConvertTransform(component.transform, transform);
+
+ for (UInt32 renderPartIndex = 0; renderPartIndex < component.renderPartCount; renderPartIndex++)
+ {
+ if (RenderParts.Count <= renderPartIndex)
+ {
+ break;
+ }
+
+ OvrAvatarRenderComponent renderComponent = RenderParts[(int)renderPartIndex];
+ IntPtr renderPart = OvrAvatar.GetRenderPart(component, renderPartIndex);
+ ovrAvatarRenderPartType type = CAPI.ovrAvatarRenderPart_GetType(renderPart);
+ switch (type)
+ {
+ case ovrAvatarRenderPartType.SkinnedMeshRender:
+ ((OvrAvatarSkinnedMeshRenderComponent)renderComponent).UpdateSkinnedMeshRender(this, avatar, renderPart);
+ break;
+ case ovrAvatarRenderPartType.SkinnedMeshRenderPBS:
+ ((OvrAvatarSkinnedMeshRenderPBSComponent)renderComponent).UpdateSkinnedMeshRenderPBS(avatar, renderPart, renderComponent.mesh.sharedMaterial);
+ break;
+ case ovrAvatarRenderPartType.ProjectorRender:
+ ((OvrAvatarProjectorRenderComponent)renderComponent).UpdateProjectorRender(this, CAPI.ovrAvatarRenderPart_GetProjectorRender(renderPart));
+ break;
+ case ovrAvatarRenderPartType.SkinnedMeshRenderPBS_V2:
+ ((OvrAvatarSkinnedMeshPBSV2RenderComponent)renderComponent).UpdateSkinnedMeshRender(this, avatar, renderPart);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ protected void UpdateActive(OvrAvatar avatar, ovrAvatarVisibilityFlags mask)
+ {
+ bool active = avatar.ShowFirstPerson && (mask & ovrAvatarVisibilityFlags.FirstPerson) != 0;
+ active |= avatar.ShowThirdPerson && (mask & ovrAvatarVisibilityFlags.ThirdPerson) != 0;
+ this.gameObject.SetActive(active);
+ }
+
+ public void UpdateAvatarMaterial(Material mat, ovrAvatarMaterialState matState)
+ {
+ mat.SetColor("_BaseColor", matState.baseColor);
+ mat.SetInt("_BaseMaskType", (int)matState.baseMaskType);
+ mat.SetVector("_BaseMaskParameters", matState.baseMaskParameters);
+ mat.SetVector("_BaseMaskAxis", matState.baseMaskAxis);
+
+ if (matState.alphaMaskTextureID != 0)
+ {
+ mat.SetTexture("_AlphaMask", GetLoadedTexture(matState.alphaMaskTextureID));
+ mat.SetTextureScale("_AlphaMask", new Vector2(matState.alphaMaskScaleOffset.x, matState.alphaMaskScaleOffset.y));
+ mat.SetTextureOffset("_AlphaMask", new Vector2(matState.alphaMaskScaleOffset.z, matState.alphaMaskScaleOffset.w));
+ }
+
+ if (ClothingAlphaTexture != 0)
+ {
+ mat.EnableKeyword("VERTALPHA_ON");
+ mat.SetTexture("_AlphaMask2", GetLoadedTexture(ClothingAlphaTexture));
+ mat.SetTextureScale("_AlphaMask2", new Vector2(ClothingAlphaOffset.x, ClothingAlphaOffset.y));
+ mat.SetTextureOffset("_AlphaMask2", new Vector2(ClothingAlphaOffset.z, ClothingAlphaOffset.w));
+ }
+
+ if (matState.normalMapTextureID != 0)
+ {
+ mat.EnableKeyword("NORMAL_MAP_ON");
+ mat.SetTexture("_NormalMap", GetLoadedTexture(matState.normalMapTextureID));
+ mat.SetTextureScale("_NormalMap", new Vector2(matState.normalMapScaleOffset.x, matState.normalMapScaleOffset.y));
+ mat.SetTextureOffset("_NormalMap", new Vector2(matState.normalMapScaleOffset.z, matState.normalMapScaleOffset.w));
+ }
+ if (matState.parallaxMapTextureID != 0)
+ {
+ mat.SetTexture("_ParallaxMap", GetLoadedTexture(matState.parallaxMapTextureID));
+ mat.SetTextureScale("_ParallaxMap", new Vector2(matState.parallaxMapScaleOffset.x, matState.parallaxMapScaleOffset.y));
+ mat.SetTextureOffset("_ParallaxMap", new Vector2(matState.parallaxMapScaleOffset.z, matState.parallaxMapScaleOffset.w));
+ }
+ if (matState.roughnessMapTextureID != 0)
+ {
+ mat.EnableKeyword("ROUGHNESS_ON");
+ mat.SetTexture("_RoughnessMap", GetLoadedTexture(matState.roughnessMapTextureID));
+ mat.SetTextureScale("_RoughnessMap", new Vector2(matState.roughnessMapScaleOffset.x, matState.roughnessMapScaleOffset.y));
+ mat.SetTextureOffset("_RoughnessMap", new Vector2(matState.roughnessMapScaleOffset.z, matState.roughnessMapScaleOffset.w));
+ }
+ mat.EnableKeyword(LayerKeywords[matState.layerCount]);
+ for (ulong layerIndex = 0; layerIndex < matState.layerCount; layerIndex++)
+ {
+ ovrAvatarMaterialLayerState layer = matState.layers[layerIndex];
+
+ mat.SetInt(LayerSampleModeParameters[layerIndex], (int)layer.sampleMode);
+ mat.SetInt(LayerBlendModeParameters[layerIndex], (int)layer.blendMode);
+ mat.SetInt(LayerMaskTypeParameters[layerIndex], (int)layer.maskType);
+ mat.SetColor(LayerColorParameters[layerIndex], layer.layerColor);
+ if (layer.sampleMode != ovrAvatarMaterialLayerSampleMode.Color)
+ {
+ string surfaceProperty = LayerSurfaceParameters[layerIndex];
+ mat.SetTexture(surfaceProperty, GetLoadedTexture(layer.sampleTexture));
+ mat.SetTextureScale(surfaceProperty, new Vector2(layer.sampleScaleOffset.x, layer.sampleScaleOffset.y));
+ mat.SetTextureOffset(surfaceProperty, new Vector2(layer.sampleScaleOffset.z, layer.sampleScaleOffset.w));
+ }
+
+ if (layer.sampleMode == ovrAvatarMaterialLayerSampleMode.Parallax)
+ {
+ mat.EnableKeyword("PARALLAX_ON");
+ }
+
+ mat.SetColor(LayerSampleParametersParameters[layerIndex], layer.sampleParameters);
+ mat.SetColor(LayerMaskParametersParameters[layerIndex], layer.maskParameters);
+ mat.SetColor(LayerMaskAxisParameters[layerIndex], layer.maskAxis);
+ }
+
+ materialStates[mat] = matState;
+ }
+
+ public static Texture2D GetLoadedTexture(UInt64 assetId)
+ {
+ OvrAvatarAssetTexture tex = (OvrAvatarAssetTexture)OvrAvatarSDKManager.Instance.GetAsset(assetId);
+ if (tex == null)
+ {
+ return null;
+ }
+
+ return tex.texture;
+ }
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarComponent.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarComponent.cs.meta
new file mode 100644
index 0000000..7af794e
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarComponent.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 4d8af585c6ed18849905454f83194043
+timeCreated: 1479155378
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarDriver.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarDriver.cs
new file mode 100644
index 0000000..574fc7c
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarDriver.cs
@@ -0,0 +1,103 @@
+using UnityEngine;
+using System.Collections;
+using System;
+using Oculus.Avatar;
+
+public abstract class OvrAvatarDriver : MonoBehaviour {
+
+ public enum PacketMode
+ {
+ SDK,
+ Unity
+ };
+
+
+ public PacketMode Mode;
+ protected PoseFrame CurrentPose;
+ public PoseFrame GetCurrentPose() { return CurrentPose; }
+ public abstract void UpdateTransforms(IntPtr sdkAvatar);
+
+ public struct ControllerPose
+ {
+ public ovrAvatarButton buttons;
+ public ovrAvatarTouch touches;
+ public Vector2 joystickPosition;
+ public float indexTrigger;
+ public float handTrigger;
+ public bool isActive;
+
+ public static ControllerPose Interpolate(ControllerPose a, ControllerPose b, float t)
+ {
+ return new ControllerPose
+ {
+ buttons = t < 0.5f ? a.buttons : b.buttons,
+ touches = t < 0.5f ? a.touches : b.touches,
+ joystickPosition = Vector2.Lerp(a.joystickPosition, b.joystickPosition, t),
+ indexTrigger = Mathf.Lerp(a.indexTrigger, b.indexTrigger, t),
+ handTrigger = Mathf.Lerp(a.handTrigger, b.handTrigger, t),
+ isActive = t < 0.5f ? a.isActive : b.isActive,
+ };
+ }
+ }
+
+ public struct PoseFrame
+ {
+ public Vector3 headPosition;
+ public Quaternion headRotation;
+ public Vector3 handLeftPosition;
+ public Quaternion handLeftRotation;
+ public Vector3 handRightPosition;
+ public Quaternion handRightRotation;
+ public float voiceAmplitude;
+
+ public ControllerPose controllerLeftPose;
+ public ControllerPose controllerRightPose;
+
+ public static PoseFrame Interpolate(PoseFrame a, PoseFrame b, float t)
+ {
+ return new PoseFrame
+ {
+ headPosition = Vector3.Lerp(a.headPosition, b.headPosition, t),
+ headRotation = Quaternion.Slerp(a.headRotation, b.headRotation, t),
+ handLeftPosition = Vector3.Lerp(a.handLeftPosition, b.handLeftPosition, t),
+ handLeftRotation = Quaternion.Slerp(a.handLeftRotation, b.handLeftRotation, t),
+ handRightPosition = Vector3.Lerp(a.handRightPosition, b.handRightPosition, t),
+ handRightRotation = Quaternion.Slerp(a.handRightRotation, b.handRightRotation, t),
+ voiceAmplitude = Mathf.Lerp(a.voiceAmplitude, b.voiceAmplitude, t),
+ controllerLeftPose = ControllerPose.Interpolate(a.controllerLeftPose, b.controllerLeftPose, t),
+ controllerRightPose = ControllerPose.Interpolate(a.controllerRightPose, b.controllerRightPose, t),
+ };
+ }
+ };
+
+ protected void UpdateTransformsFromPose(IntPtr sdkAvatar)
+ {
+ if (sdkAvatar != IntPtr.Zero)
+ {
+ ovrAvatarTransform bodyTransform = OvrAvatar.CreateOvrAvatarTransform(CurrentPose.headPosition, CurrentPose.headRotation);
+ ovrAvatarHandInputState inputStateLeft = OvrAvatar.CreateInputState(OvrAvatar.CreateOvrAvatarTransform(CurrentPose.handLeftPosition, CurrentPose.handLeftRotation), CurrentPose.controllerLeftPose);
+ ovrAvatarHandInputState inputStateRight = OvrAvatar.CreateInputState(OvrAvatar.CreateOvrAvatarTransform(CurrentPose.handRightPosition, CurrentPose.handRightRotation), CurrentPose.controllerRightPose);
+
+ CAPI.ovrAvatarPose_UpdateBody(sdkAvatar, bodyTransform);
+
+ if (GetIsTrackedRemote())
+ {
+ CAPI.ovrAvatarPose_UpdateSDK3DofHands(sdkAvatar, inputStateLeft, inputStateRight, GetRemoteControllerType());
+ }
+ else
+ {
+ CAPI.ovrAvatarPose_UpdateHands(sdkAvatar, inputStateLeft, inputStateRight);
+ }
+ }
+ }
+
+ public static bool GetIsTrackedRemote()
+ {
+ return OVRInput.IsControllerConnected(OVRInput.Controller.RTrackedRemote) || OVRInput.IsControllerConnected(OVRInput.Controller.LTrackedRemote);
+ }
+
+ private ovrAvatarControllerType GetRemoteControllerType()
+ {
+ return OVRPlugin.productName == "Oculus Go" ? ovrAvatarControllerType.Go : ovrAvatarControllerType.Malibu;
+ }
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarDriver.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarDriver.cs.meta
new file mode 100644
index 0000000..3bdc633
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarDriver.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: b0bda905d6cc47640bc17f99e364a1b9
+timeCreated: 1464049373
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarHand.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarHand.cs
new file mode 100644
index 0000000..5544634
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarHand.cs
@@ -0,0 +1,8 @@
+using UnityEngine;
+using System.Collections;
+using System.Collections.Generic;
+using System;
+
+public class OvrAvatarHand : MonoBehaviour
+{
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarHand.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarHand.cs.meta
new file mode 100644
index 0000000..e9773e6
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarHand.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: e53b07ad62d980a4da9fffff0b05fd2e
+timeCreated: 1464054646
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarLocalDriver.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarLocalDriver.cs
new file mode 100644
index 0000000..f8fd26b
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarLocalDriver.cs
@@ -0,0 +1,108 @@
+using UnityEngine;
+using System.Collections;
+using System;
+using System.Collections.Generic;
+using Oculus.Avatar;
+
+public class OvrAvatarLocalDriver : OvrAvatarDriver {
+
+ ControllerPose GetMalibuControllerPose(OVRInput.Controller controller)
+ {
+ ovrAvatarButton buttons = 0;
+ if (OVRInput.Get(OVRInput.Button.PrimaryIndexTrigger, controller)) buttons |= ovrAvatarButton.One;
+
+ return new ControllerPose
+ {
+ buttons = buttons,
+ touches = OVRInput.Get(OVRInput.Touch.PrimaryTouchpad) ? ovrAvatarTouch.One : 0,
+ joystickPosition = OVRInput.Get(OVRInput.Axis2D.PrimaryTouchpad, controller),
+ indexTrigger = 0f,
+ handTrigger = 0f,
+ isActive = (OVRInput.GetActiveController() & controller) != 0,
+ };
+ }
+
+ float voiceAmplitude = 0.0f;
+ ControllerPose GetControllerPose(OVRInput.Controller controller)
+ {
+ ovrAvatarButton buttons = 0;
+ if (OVRInput.Get(OVRInput.Button.One, controller)) buttons |= ovrAvatarButton.One;
+ if (OVRInput.Get(OVRInput.Button.Two, controller)) buttons |= ovrAvatarButton.Two;
+ if (OVRInput.Get(OVRInput.Button.Start, controller)) buttons |= ovrAvatarButton.Three;
+ if (OVRInput.Get(OVRInput.Button.PrimaryThumbstick, controller)) buttons |= ovrAvatarButton.Joystick;
+
+ ovrAvatarTouch touches = 0;
+ if (OVRInput.Get(OVRInput.Touch.One, controller)) touches |= ovrAvatarTouch.One;
+ if (OVRInput.Get(OVRInput.Touch.Two, controller)) touches |= ovrAvatarTouch.Two;
+ if (OVRInput.Get(OVRInput.Touch.PrimaryThumbstick, controller)) touches |= ovrAvatarTouch.Joystick;
+ if (OVRInput.Get(OVRInput.Touch.PrimaryThumbRest, controller)) touches |= ovrAvatarTouch.ThumbRest;
+ if (OVRInput.Get(OVRInput.Touch.PrimaryIndexTrigger, controller)) touches |= ovrAvatarTouch.Index;
+ if (!OVRInput.Get(OVRInput.NearTouch.PrimaryIndexTrigger, controller)) touches |= ovrAvatarTouch.Pointing;
+ if (!OVRInput.Get(OVRInput.NearTouch.PrimaryThumbButtons, controller)) touches |= ovrAvatarTouch.ThumbUp;
+
+ return new ControllerPose
+ {
+ buttons = buttons,
+ touches = touches,
+ joystickPosition = OVRInput.Get(OVRInput.Axis2D.PrimaryThumbstick, controller),
+ indexTrigger = OVRInput.Get(OVRInput.Axis1D.PrimaryIndexTrigger, controller),
+ handTrigger = OVRInput.Get(OVRInput.Axis1D.PrimaryHandTrigger, controller),
+ isActive = (OVRInput.GetActiveController() & controller) != 0,
+ };
+ }
+
+ private void CalculateCurrentPose()
+ {
+#if UNITY_2017_2_OR_NEWER
+ Vector3 headPos = UnityEngine.XR.InputTracking.GetLocalPosition(UnityEngine.XR.XRNode.CenterEye);
+#else
+ Vector3 headPos = UnityEngine.VR.InputTracking.GetLocalPosition(UnityEngine.VR.VRNode.CenterEye);
+#endif
+
+ if (GetIsTrackedRemote())
+ {
+ CurrentPose = new PoseFrame
+ {
+ voiceAmplitude = voiceAmplitude,
+ headPosition = headPos,
+#if UNITY_2017_2_OR_NEWER
+ headRotation = UnityEngine.XR.InputTracking.GetLocalRotation(UnityEngine.XR.XRNode.CenterEye),
+#else
+ headRotation = UnityEngine.VR.InputTracking.GetLocalRotation(UnityEngine.VR.VRNode.CenterEye),
+#endif
+ handLeftPosition = OVRInput.GetLocalControllerPosition(OVRInput.Controller.LTrackedRemote),
+ handLeftRotation = OVRInput.GetLocalControllerRotation(OVRInput.Controller.LTrackedRemote),
+ handRightPosition = OVRInput.GetLocalControllerPosition(OVRInput.Controller.RTrackedRemote),
+ handRightRotation = OVRInput.GetLocalControllerRotation(OVRInput.Controller.RTrackedRemote),
+ controllerLeftPose = GetMalibuControllerPose(OVRInput.Controller.LTrackedRemote),
+ controllerRightPose = GetMalibuControllerPose(OVRInput.Controller.RTrackedRemote),
+ };
+ }
+ else
+ {
+ CurrentPose = new PoseFrame
+ {
+ voiceAmplitude = voiceAmplitude,
+ headPosition = headPos,
+#if UNITY_2017_2_OR_NEWER
+ headRotation = UnityEngine.XR.InputTracking.GetLocalRotation(UnityEngine.XR.XRNode.CenterEye),
+#else
+ headRotation = UnityEngine.VR.InputTracking.GetLocalRotation(UnityEngine.VR.VRNode.CenterEye),
+#endif
+ handLeftPosition = OVRInput.GetLocalControllerPosition(OVRInput.Controller.LTouch),
+ handLeftRotation = OVRInput.GetLocalControllerRotation(OVRInput.Controller.LTouch),
+ handRightPosition = OVRInput.GetLocalControllerPosition(OVRInput.Controller.RTouch),
+ handRightRotation = OVRInput.GetLocalControllerRotation(OVRInput.Controller.RTouch),
+ controllerLeftPose = GetControllerPose(OVRInput.Controller.LTouch),
+ controllerRightPose = GetControllerPose(OVRInput.Controller.RTouch),
+ };
+ }
+
+ }
+
+ public override void UpdateTransforms(IntPtr sdkAvatar)
+ {
+ CalculateCurrentPose();
+ UpdateTransformsFromPose(sdkAvatar);
+ }
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarLocalDriver.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarLocalDriver.cs.meta
new file mode 100644
index 0000000..798ef51
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarLocalDriver.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: ac27124318cf8e84aa7350c2ac1cdb80
+timeCreated: 1464049705
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarLogger.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarLogger.cs
new file mode 100644
index 0000000..51f4dc3
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarLogger.cs
@@ -0,0 +1,38 @@
+using UnityEngine;
+
+namespace Oculus.Avatar
+{
+ public static class AvatarLogger
+ {
+ public const string LogAvatar = "[Avatars] - ";
+ public const string Tab = " ";
+
+ [System.Diagnostics.Conditional("ENABLE_AVATAR_LOGS"),
+ System.Diagnostics.Conditional("ENABLE_AVATAR_LOG_BASIC")]
+ public static void Log(string logMsg)
+ {
+ Debug.Log(LogAvatar + logMsg);
+ }
+
+ [System.Diagnostics.Conditional("ENABLE_AVATAR_LOGS"),
+ System.Diagnostics.Conditional("ENABLE_AVATAR_LOG_BASIC")]
+ public static void Log(string logMsg, Object context)
+ {
+ Debug.Log(LogAvatar + logMsg , context);
+ }
+
+ [System.Diagnostics.Conditional("ENABLE_AVATAR_LOGS"),
+ System.Diagnostics.Conditional("ENABLE_AVATAR_LOG_WARNING")]
+ public static void LogWarning(string logMsg)
+ {
+ Debug.LogWarning(LogAvatar + logMsg);
+ }
+
+ [System.Diagnostics.Conditional("ENABLE_AVATAR_LOGS"),
+ System.Diagnostics.Conditional("ENABLE_AVATAR_LOG_ERROR")]
+ public static void LogError(string logMsg)
+ {
+ Debug.LogError(LogAvatar + logMsg);
+ }
+ };
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarLogger.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarLogger.cs.meta
new file mode 100644
index 0000000..073015a
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarLogger.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 6d391500bc1e8da42a41ef796dd22ed0
+timeCreated: 1519433181
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarMaterialManager.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarMaterialManager.cs
new file mode 100644
index 0000000..d5db298
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarMaterialManager.cs
@@ -0,0 +1,354 @@
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.Rendering;
+using Oculus.Avatar;
+using System.Collections;
+
+public class OvrAvatarMaterialManager : MonoBehaviour
+{
+ // Set up in the Prefab, and meant to be indexed by LOD
+ public Texture2D[] DiffuseFallbacks;
+ public Texture2D[] NormalFallbacks;
+
+ private Renderer TargetRenderer;
+ private AvatarTextureArrayProperties[] TextureArrays;
+
+ private OvrAvatarTextureCopyManager TextureCopyManager;
+
+ public enum TextureType
+ {
+ DiffuseTextures = 0,
+ NormalMaps,
+ RoughnessMaps,
+
+ Count
+ }
+ // Material properties required to render a single component
+ [System.Serializable]
+ public struct AvatarComponentMaterialProperties
+ {
+ public ovrAvatarBodyPartType TypeIndex;
+ public Color Color;
+ public Texture2D[] Textures;
+
+ [Range(0, 1)] public float DiffuseIntensity;
+ [Range(0, 10)] public float RimIntensity;
+ [Range(0, 1)] public float BacklightIntensity;
+ [Range(0, 1)] public float ReflectionIntensity;
+ }
+
+ // Texture arrays
+ [System.Serializable]
+ public struct AvatarTextureArrayProperties
+ {
+ public Texture2D[] Textures;
+ public Texture2DArray TextureArray;
+ }
+
+ // Material property arrays that are pushed to the shader
+ [System.Serializable]
+ public struct AvatarMaterialPropertyBlock
+ {
+ public Vector4[] Colors;
+ public float[] DiffuseIntensities;
+ public float[] RimIntensities;
+ public float[] BacklightIntensities;
+ public float[] ReflectionIntensities;
+ }
+
+ private readonly string[] TextureTypeToShaderProperties =
+ {
+ "_MainTex", // TextureType.DiffuseTextures = 0
+ "_NormalMap", // TextureType.NormalMaps
+ "_RoughnessMap" // TextureType.RoughnessMaps
+ };
+
+ public Color[] BodyColorTints;
+ public List ReflectionProbes = new List();
+
+ // Container class for all the data relating to an avatar material description
+ [System.Serializable]
+ public class AvatarMaterialConfig
+ {
+ public AvatarComponentMaterialProperties[] ComponentMaterialProperties;
+ public AvatarMaterialPropertyBlock MaterialPropertyBlock;
+ }
+
+ // Local config that this manager instance will render
+ public AvatarMaterialConfig LocalAvatarConfig;
+ // Default avatar config used to initially populate the locally managed avatar config
+ public AvatarMaterialConfig DefaultAvatarConfig;
+
+ // Property block for pushing to shader
+ private AvatarMaterialPropertyBlock LocalAvatarMaterialPropertyBlock;
+
+ public static int RENDER_QUEUE = 3640;
+
+ // Shader properties
+ public static string AVATAR_SHADER_COMBINED = "OvrAvatar/Avatar_Mobile_CombinedMesh";
+ public static string AVATAR_SHADER_LOADER = "OvrAvatar/Avatar_Mobile_Loader";
+ public static string AVATAR_SHADER_MAINTEX = "_MainTex";
+ public static string AVATAR_SHADER_NORMALMAP = "_NormalMap";
+ public static string AVATAR_SHADER_ROUGHNESSMAP = "_RoughnessMap";
+ public static string AVATAR_SHADER_COLOR = "_BaseColor";
+ public static string AVATAR_SHADER_DIFFUSEINTENSITY = "_DiffuseIntensity";
+ public static string AVATAR_SHADER_RIMINTENSITY = "_RimIntensity";
+ public static string AVATAR_SHADER_BACKLIGHTINTENSITY = "_BacklightIntensity";
+ public static string AVATAR_SHADER_REFLECTIONINTENSITY = "_ReflectionIntensity";
+ public static string AVATAR_SHADER_CUBEMAP = "_Cubemap";
+ public static string AVATAR_SHADER_ALPHA = "_Alpha";
+ public static string AVATAR_SHADER_LOADING_DIMMER = "_LoadingDimmer";
+
+ // Loading animation
+ private const float LOADING_ANIMATION_AMPLITUDE = 0.5f;
+ private const float LOADING_ANIMATION_PERIOD = 0.35f;
+ private const float LOADING_ANIMATION_CURVE_SCALE = 0.25f;
+ private const float LOADING_ANIMATION_DIMMER_MIN = 0.3f;
+
+ void Awake()
+ {
+ TextureCopyManager = gameObject.AddComponent();
+ }
+
+ public void CreateTextureArrays()
+ {
+ const int componentCount = (int)ovrAvatarBodyPartType.Count;
+ const int textureTypeCount = (int)TextureType.Count;
+
+ for (int index = 0; index < componentCount; index++)
+ {
+ LocalAvatarConfig.ComponentMaterialProperties[index].Textures = new Texture2D[textureTypeCount];
+ DefaultAvatarConfig.ComponentMaterialProperties[index].Textures = new Texture2D[textureTypeCount];
+ }
+
+ TextureArrays = new AvatarTextureArrayProperties[textureTypeCount];
+ }
+
+ public void SetRenderer(Renderer renderer)
+ {
+ TargetRenderer = renderer;
+ TargetRenderer.GetClosestReflectionProbes(ReflectionProbes);
+ }
+
+ public void OnCombinedMeshReady()
+ {
+ InitTextureArrays();
+ SetMaterialPropertyBlock();
+ StartCoroutine(RunLoadingAnimation());
+ }
+
+ // Prepare texture arrays and copy to GPU
+ public void InitTextureArrays()
+ {
+ var localProps = LocalAvatarConfig.ComponentMaterialProperties[0];
+
+ for (int i = 0; i < TextureArrays.Length && i < localProps.Textures.Length; i++)
+ {
+ TextureArrays[i].TextureArray = new Texture2DArray(
+ localProps.Textures[0].height, localProps.Textures[0].width,
+ LocalAvatarConfig.ComponentMaterialProperties.Length,
+ localProps.Textures[0].format,
+ true,
+ QualitySettings.activeColorSpace == ColorSpace.Gamma ? false : true
+ ) { filterMode = FilterMode.Trilinear };
+
+ TextureArrays[i].Textures
+ = new Texture2D[LocalAvatarConfig.ComponentMaterialProperties.Length];
+
+ for (int j = 0; j < LocalAvatarConfig.ComponentMaterialProperties.Length; j++)
+ {
+ TextureArrays[i].Textures[j]
+ = LocalAvatarConfig.ComponentMaterialProperties[j].Textures[i];
+ }
+
+ ProcessTexturesWithMips(
+ TextureArrays[i].Textures,
+ localProps.Textures[i].height,
+ TextureArrays[i].TextureArray);
+ }
+ }
+
+ private void ProcessTexturesWithMips(
+ Texture2D[] textures,
+ int texArrayResolution,
+ Texture2DArray texArray)
+ {
+ for (int i = 0; i < textures.Length; i++)
+ {
+ int currentMipSize = texArrayResolution;
+ int correctNumberOfMips = textures[i].mipmapCount - 1;
+
+ // Add mips to copyTexture queue in low-high order from correctNumberOfMips..0
+ for (int mipLevel = correctNumberOfMips; mipLevel >= 0; mipLevel--)
+ {
+ int mipSize = texArrayResolution / currentMipSize;
+ TextureCopyManager.CopyTexture(
+ textures[i],
+ texArray,
+ mipLevel,
+ mipSize,
+ i,
+ true);
+
+ currentMipSize /= 2;
+ }
+ }
+ }
+
+ private void SetMaterialPropertyBlock()
+ {
+ if (TargetRenderer != null)
+ {
+ for (int i = 0; i < LocalAvatarConfig.ComponentMaterialProperties.Length; i++)
+ {
+ LocalAvatarConfig.MaterialPropertyBlock.Colors[i]
+ = LocalAvatarConfig.ComponentMaterialProperties[i].Color;
+ LocalAvatarConfig.MaterialPropertyBlock.DiffuseIntensities[i]
+ = LocalAvatarConfig.ComponentMaterialProperties[i].DiffuseIntensity;
+ LocalAvatarConfig.MaterialPropertyBlock.RimIntensities[i]
+ = LocalAvatarConfig.ComponentMaterialProperties[i].RimIntensity;
+ LocalAvatarConfig.MaterialPropertyBlock.BacklightIntensities[i]
+ = LocalAvatarConfig.ComponentMaterialProperties[i].BacklightIntensity;
+ LocalAvatarConfig.MaterialPropertyBlock.ReflectionIntensities[i]
+ = LocalAvatarConfig.ComponentMaterialProperties[i].ReflectionIntensity;
+ }
+ }
+ }
+
+ private void ApplyMaterialPropertyBlock()
+ {
+ MaterialPropertyBlock materialPropertyBlock = new MaterialPropertyBlock();
+ materialPropertyBlock.SetVectorArray(AVATAR_SHADER_COLOR,
+ LocalAvatarConfig.MaterialPropertyBlock.Colors);
+ materialPropertyBlock.SetFloatArray(AVATAR_SHADER_DIFFUSEINTENSITY,
+ LocalAvatarConfig.MaterialPropertyBlock.DiffuseIntensities);
+ materialPropertyBlock.SetFloatArray(AVATAR_SHADER_RIMINTENSITY,
+ LocalAvatarConfig.MaterialPropertyBlock.RimIntensities);
+ materialPropertyBlock.SetFloatArray(AVATAR_SHADER_BACKLIGHTINTENSITY,
+ LocalAvatarConfig.MaterialPropertyBlock.BacklightIntensities);
+ materialPropertyBlock.SetFloatArray(AVATAR_SHADER_REFLECTIONINTENSITY,
+ LocalAvatarConfig.MaterialPropertyBlock.ReflectionIntensities);
+ TargetRenderer.GetClosestReflectionProbes(ReflectionProbes);
+
+ if (ReflectionProbes != null && ReflectionProbes.Count > 0 && ReflectionProbes[0].probe.texture != null)
+ {
+ materialPropertyBlock.SetTexture(AVATAR_SHADER_CUBEMAP, ReflectionProbes[0].probe.texture);
+ }
+
+ for (int i = 0; i < TextureArrays.Length; i++)
+ {
+ materialPropertyBlock.SetTexture(TextureTypeToShaderProperties[i],
+ TextureArrays[(int)(TextureType)i].TextureArray);
+ }
+
+ TargetRenderer.SetPropertyBlock(materialPropertyBlock);
+ }
+
+ // Return a component type based on name
+ public static ovrAvatarBodyPartType GetComponentType(string objectName)
+ {
+ if (objectName.Contains("0"))
+ {
+ return ovrAvatarBodyPartType.Body;
+ }
+ else if (objectName.Contains("1"))
+ {
+ return ovrAvatarBodyPartType.Clothing;
+ }
+ else if (objectName.Contains("2"))
+ {
+ return ovrAvatarBodyPartType.Eyewear;
+ }
+ else if (objectName.Contains("3"))
+ {
+ return ovrAvatarBodyPartType.Hair;
+ }
+ else if (objectName.Contains("4"))
+ {
+ return ovrAvatarBodyPartType.Beard;
+ }
+
+ return ovrAvatarBodyPartType.Count;
+ }
+
+ public void ValidateTextures()
+ {
+ var props = LocalAvatarConfig.ComponentMaterialProperties;
+
+ int[] heights = new int[(int)TextureType.Count];
+ TextureFormat[] formats = new TextureFormat[(int)TextureType.Count];
+
+ for (var propIndex = 0; propIndex < props.Length; propIndex++)
+ {
+ for (var index = 0; index < props[propIndex].Textures.Length; index++)
+ {
+ if (props[propIndex].Textures[index] == null)
+ {
+ throw new System.Exception(
+ props[propIndex].TypeIndex.ToString()
+ + "Invalid: "
+ + ((TextureType)index).ToString());
+ }
+
+ heights[index] = props[propIndex].Textures[index].height;
+ formats[index] = props[propIndex].Textures[index].format;
+ }
+ }
+
+ for (int textureIndex = 0; textureIndex < (int)TextureType.Count; textureIndex++)
+ {
+ for (var propIndex = 1; propIndex < props.Length; propIndex++)
+ {
+ if (props[propIndex - 1].Textures[textureIndex].height
+ != props[propIndex].Textures[textureIndex].height)
+ {
+ throw new System.Exception(
+ props[propIndex].TypeIndex.ToString()
+ + " Mismatching Resolutions: "
+ + ((TextureType)textureIndex).ToString()
+ + " "
+ + props[propIndex - 1].Textures[textureIndex].height
+ + " vs "
+ + props[propIndex].Textures[textureIndex].height
+ + " Ensure you are using ASTC texture compression on Android or turn off CombineMeshes");
+ }
+
+ if (props[propIndex - 1].Textures[textureIndex].format
+ != props[propIndex].Textures[textureIndex].format)
+ {
+ throw new System.Exception(
+ props[propIndex].TypeIndex.ToString()
+ + " Mismatching Formats: "
+ + ((TextureType)textureIndex).ToString()
+ + " Ensure you are using ASTC texture compression on Android or turn off CombineMeshes");
+ }
+ }
+ }
+ }
+
+ // Loading animation on the Dimmer properyt
+ // Smooth sine lerp every 0.3 seconds between 0.25 and 0.5
+ private IEnumerator RunLoadingAnimation()
+ {
+ // Set the material to single component while the avatar loads
+ int renderQueue = TargetRenderer.sharedMaterial.renderQueue;
+ TargetRenderer.sharedMaterial.shader = Shader.Find(AVATAR_SHADER_LOADER);
+ TargetRenderer.sharedMaterial.renderQueue = renderQueue;
+ TargetRenderer.sharedMaterial.SetColor(AVATAR_SHADER_COLOR, Color.white);
+
+ while (TextureCopyManager.GetTextureCount() > 0)
+ {
+ float distance = (LOADING_ANIMATION_AMPLITUDE * Mathf.Sin(Time.timeSinceLevelLoad / LOADING_ANIMATION_PERIOD) +
+ LOADING_ANIMATION_AMPLITUDE) * (LOADING_ANIMATION_CURVE_SCALE) + LOADING_ANIMATION_DIMMER_MIN;
+ TargetRenderer.sharedMaterial.SetFloat(AVATAR_SHADER_LOADING_DIMMER, distance);
+ yield return null;
+ }
+ // Restore render order and swap the combined material
+ renderQueue = TargetRenderer.sharedMaterial.renderQueue;
+ TargetRenderer.sharedMaterial.SetFloat(AVATAR_SHADER_LOADING_DIMMER, 1f);
+ TargetRenderer.sharedMaterial.shader = Shader.Find(AVATAR_SHADER_COMBINED);
+ TargetRenderer.sharedMaterial.renderQueue = renderQueue;
+
+ ApplyMaterialPropertyBlock();
+ }
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarMaterialManager.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarMaterialManager.cs.meta
new file mode 100644
index 0000000..52e5819
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarMaterialManager.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: a139d83bf6796734db220df8a5bfacbd
+timeCreated: 1518209612
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarMeshInstance.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarMeshInstance.cs
new file mode 100644
index 0000000..cb65193
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarMeshInstance.cs
@@ -0,0 +1,180 @@
+using UnityEngine;
+using System;
+using Oculus.Avatar;
+using System.Collections.Generic;
+
+public class OvrAvatarMeshInstance : MonoBehaviour
+{
+ HashSet AssetsToLoad;
+
+ public UInt64 MeshID = 0;
+ UInt64 MaterialID = 0;
+ UInt64 FadeTextureID = 0;
+ public ovrAvatarBodyPartType MeshType;
+ public ovrAvatarMaterialState MaterialState;
+ MeshFilter Mesh;
+ MeshRenderer MeshInstance;
+
+ public void AssetLoadedCallback(OvrAvatarAsset asset)
+ {
+ AssetsToLoad.Remove(asset.assetID);
+ HandleAssetAvailable(asset);
+
+ if (AssetsToLoad.Count <= 0)
+ {
+ UpdateMaterial();
+ }
+ }
+
+ public void SetMeshAssets(UInt64 fadeTexture, UInt64 meshID, UInt64 materialID, ovrAvatarBodyPartType type)
+ {
+ MaterialID = materialID;
+ MeshID = meshID;
+ FadeTextureID = fadeTexture;
+ MeshType = type;
+
+ AssetsToLoad = new HashSet();
+
+ RequestAsset(meshID);
+ RequestAsset(materialID);
+ RequestAsset(fadeTexture);
+ }
+
+ private void HandleAssetAvailable(OvrAvatarAsset asset)
+ {
+ if (asset.assetID == MeshID)
+ {
+ Mesh = gameObject.AddComponent();
+ MeshInstance = gameObject.AddComponent();
+ MeshInstance.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
+ Mesh.sharedMesh = ((OvrAvatarAssetMesh)asset).mesh;
+
+ Material mat = new Material(Shader.Find("OvrAvatar/AvatarSurfaceShaderSelfOccluding"));
+ MeshInstance.material = mat;
+ }
+
+ if (asset.assetID == MaterialID)
+ {
+ MaterialState = ((OvrAvatarAssetMaterial)asset).material;
+ MaterialState.alphaMaskTextureID = FadeTextureID;
+ RequestMaterialTextures();
+ }
+ }
+
+ public void ChangeMaterial(UInt64 assetID)
+ {
+ MaterialID = assetID;
+ RequestAsset(MaterialID);
+ }
+
+ private void RequestAsset(UInt64 assetID)
+ {
+ if (assetID == 0)
+ {
+ return;
+ }
+
+ OvrAvatarAsset asset = OvrAvatarSDKManager.Instance.GetAsset(assetID);
+ if (asset == null)
+ {
+ OvrAvatarSDKManager.Instance.BeginLoadingAsset(assetID, ovrAvatarAssetLevelOfDetail.Medium, this.AssetLoadedCallback);
+ AssetsToLoad.Add(assetID);
+ }
+ else
+ {
+ HandleAssetAvailable(asset);
+ }
+ }
+
+ private void RequestMaterialTextures()
+ {
+ RequestAsset(MaterialState.normalMapTextureID);
+ RequestAsset(MaterialState.parallaxMapTextureID);
+ RequestAsset(MaterialState.roughnessMapTextureID);
+
+ for (var layerIndex = 0; layerIndex < MaterialState.layerCount; layerIndex++)
+ {
+ RequestAsset(MaterialState.layers[layerIndex].sampleTexture);
+ }
+ }
+
+ public void SetActive(bool active)
+ {
+ gameObject.SetActive(active);
+
+ if (active)
+ {
+ UpdateMaterial();
+ }
+ }
+
+ private void UpdateMaterial()
+ {
+ if (MeshInstance == null || MaterialID == 0)
+ {
+ return;
+ }
+
+ var mat = MeshInstance.material;
+ var matState = MaterialState;
+
+ mat.SetColor("_BaseColor", matState.baseColor);
+ mat.SetInt("_BaseMaskType", (int)matState.baseMaskType);
+ mat.SetVector("_BaseMaskParameters", matState.baseMaskParameters);
+ mat.SetVector("_BaseMaskAxis", matState.baseMaskAxis);
+
+ if (matState.alphaMaskTextureID != 0)
+ {
+ mat.SetTexture("_AlphaMask", OvrAvatarComponent.GetLoadedTexture(matState.alphaMaskTextureID));
+ mat.SetTextureScale("_AlphaMask", new Vector2(matState.alphaMaskScaleOffset.x, matState.alphaMaskScaleOffset.y));
+ mat.SetTextureOffset("_AlphaMask", new Vector2(matState.alphaMaskScaleOffset.z, matState.alphaMaskScaleOffset.w));
+ }
+
+ if (matState.normalMapTextureID != 0)
+ {
+ mat.EnableKeyword("NORMAL_MAP_ON");
+ mat.SetTexture("_NormalMap", OvrAvatarComponent.GetLoadedTexture(matState.normalMapTextureID));
+ mat.SetTextureScale("_NormalMap", new Vector2(matState.normalMapScaleOffset.x, matState.normalMapScaleOffset.y));
+ mat.SetTextureOffset("_NormalMap", new Vector2(matState.normalMapScaleOffset.z, matState.normalMapScaleOffset.w));
+ }
+ if (matState.parallaxMapTextureID != 0)
+ {
+ mat.SetTexture("_ParallaxMap", OvrAvatarComponent.GetLoadedTexture(matState.parallaxMapTextureID));
+ mat.SetTextureScale("_ParallaxMap", new Vector2(matState.parallaxMapScaleOffset.x, matState.parallaxMapScaleOffset.y));
+ mat.SetTextureOffset("_ParallaxMap", new Vector2(matState.parallaxMapScaleOffset.z, matState.parallaxMapScaleOffset.w));
+ }
+ if (matState.roughnessMapTextureID != 0)
+ {
+ mat.EnableKeyword("ROUGHNESS_ON");
+ mat.SetTexture("_RoughnessMap", OvrAvatarComponent.GetLoadedTexture(matState.roughnessMapTextureID));
+ mat.SetTextureScale("_RoughnessMap", new Vector2(matState.roughnessMapScaleOffset.x, matState.roughnessMapScaleOffset.y));
+ mat.SetTextureOffset("_RoughnessMap", new Vector2(matState.roughnessMapScaleOffset.z, matState.roughnessMapScaleOffset.w));
+ }
+ mat.EnableKeyword(OvrAvatarComponent.LayerKeywords[matState.layerCount]);
+ for (ulong layerIndex = 0; layerIndex < matState.layerCount; layerIndex++)
+ {
+ ovrAvatarMaterialLayerState layer = matState.layers[layerIndex];
+
+ mat.SetInt(OvrAvatarComponent.LayerSampleModeParameters[layerIndex], (int)layer.sampleMode);
+ mat.SetInt(OvrAvatarComponent.LayerBlendModeParameters[layerIndex], (int)layer.blendMode);
+ mat.SetInt(OvrAvatarComponent.LayerMaskTypeParameters[layerIndex], (int)layer.maskType);
+ mat.SetColor(OvrAvatarComponent.LayerColorParameters[layerIndex], layer.layerColor);
+ if (layer.sampleMode != ovrAvatarMaterialLayerSampleMode.Color)
+ {
+ string surfaceProperty = OvrAvatarComponent.LayerSurfaceParameters[layerIndex];
+ mat.SetTexture(surfaceProperty, OvrAvatarComponent.GetLoadedTexture(layer.sampleTexture));
+ mat.SetTextureScale(surfaceProperty, new Vector2(layer.sampleScaleOffset.x, layer.sampleScaleOffset.y));
+ mat.SetTextureOffset(surfaceProperty, new Vector2(layer.sampleScaleOffset.z, layer.sampleScaleOffset.w));
+ }
+
+ if (layer.sampleMode == ovrAvatarMaterialLayerSampleMode.Parallax)
+ {
+ mat.EnableKeyword("PARALLAX_ON");
+ }
+
+ mat.SetColor(OvrAvatarComponent.LayerSampleParametersParameters[layerIndex], layer.sampleParameters);
+ mat.SetColor(OvrAvatarComponent.LayerMaskParametersParameters[layerIndex], layer.maskParameters);
+ mat.SetColor(OvrAvatarComponent.LayerMaskAxisParameters[layerIndex], layer.maskAxis);
+ }
+ }
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarMeshInstance.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarMeshInstance.cs.meta
new file mode 100644
index 0000000..6d0bb21
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarMeshInstance.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: b826904b5b22c3d42b56ca245ec8a58b
+timeCreated: 1493063917
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarPacket.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarPacket.cs
new file mode 100644
index 0000000..c9f368a
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarPacket.cs
@@ -0,0 +1,231 @@
+using UnityEngine;
+using System.Collections;
+using System.IO;
+using System.Collections.Generic;
+using System;
+
+public class OvrAvatarPacket
+{
+ // Used with SDK driven packet flow
+ public IntPtr ovrNativePacket = IntPtr.Zero;
+
+ // ===============================================================
+ // All code below used for unity only pose blending option.
+ // ===============================================================
+ List frameTimes = new List();
+ List frames = new List();
+ List encodedAudioPackets = new List();
+
+ public float Duration { get { return frameTimes[frameTimes.Count - 1]; } }
+ public OvrAvatarDriver.PoseFrame FinalFrame { get { return frames[frames.Count - 1]; } }
+
+ public OvrAvatarPacket()
+ {
+ }
+
+ public OvrAvatarPacket(OvrAvatarDriver.PoseFrame initialPose)
+ {
+ frameTimes.Add(0.0f);
+ frames.Add(initialPose);
+ }
+
+ OvrAvatarPacket(List frameTimes, List frames, List audioPackets)
+ {
+ this.frameTimes = frameTimes;
+ this.frames = frames;
+ }
+
+ public void AddFrame(OvrAvatarDriver.PoseFrame frame, float deltaSeconds)
+ {
+ frameTimes.Add(Duration + deltaSeconds);
+ frames.Add(frame);
+ }
+
+ public OvrAvatarDriver.PoseFrame GetPoseFrame(float seconds)
+ {
+ if (frames.Count == 1)
+ {
+ return frames[0];
+ }
+
+ // This can be replaced with a more efficient binary search
+ int tailIndex = 1;
+ while (tailIndex < frameTimes.Count && frameTimes[tailIndex] < seconds)
+ {
+ ++tailIndex;
+ }
+ OvrAvatarDriver.PoseFrame a = frames[tailIndex - 1];
+ OvrAvatarDriver.PoseFrame b = frames[tailIndex];
+ float aTime = frameTimes[tailIndex - 1];
+ float bTime = frameTimes[tailIndex];
+ float t = (seconds - aTime) / (bTime - aTime);
+ return OvrAvatarDriver.PoseFrame.Interpolate(a, b, t);
+ }
+
+ public static OvrAvatarPacket Read(Stream stream)
+ {
+ BinaryReader reader = new BinaryReader(stream);
+
+ // Todo: bounds check frame count
+ int frameCount = reader.ReadInt32();
+ List frameTimes = new List(frameCount);
+ for (int i = 0; i < frameCount; ++i)
+ {
+ frameTimes.Add(reader.ReadSingle());
+ }
+ List frames = new List(frameCount);
+ for (int i = 0; i < frameCount; ++i)
+ {
+ frames.Add(reader.ReadPoseFrame());
+ }
+
+ // Todo: bounds check audio packet count
+ int audioPacketCount = reader.ReadInt32();
+ List audioPackets = new List(audioPacketCount);
+ for (int i = 0; i < audioPacketCount; ++i)
+ {
+ int audioPacketSize = reader.ReadInt32();
+ byte[] audioPacket = reader.ReadBytes(audioPacketSize);
+ audioPackets.Add(audioPacket);
+ }
+
+ return new OvrAvatarPacket(frameTimes, frames, audioPackets);
+ }
+
+ public void Write(Stream stream)
+ {
+ BinaryWriter writer = new BinaryWriter(stream);
+
+ // Write all of the frames
+ int frameCount = frameTimes.Count;
+ writer.Write(frameCount);
+ for (int i = 0; i < frameCount; ++i)
+ {
+ writer.Write(frameTimes[i]);
+ }
+ for (int i = 0; i < frameCount; ++i)
+ {
+ OvrAvatarDriver.PoseFrame frame = frames[i];
+ writer.Write(frame);
+ }
+
+ // Write all of the encoded audio packets
+ int audioPacketCount = encodedAudioPackets.Count;
+ writer.Write(audioPacketCount);
+ for (int i = 0; i < audioPacketCount; ++i)
+ {
+ byte[] packet = encodedAudioPackets[i];
+ writer.Write(packet.Length);
+ writer.Write(packet);
+ }
+ }
+}
+
+static class BinaryWriterExtensions
+{
+ public static void Write(this BinaryWriter writer, OvrAvatarDriver.PoseFrame frame)
+ {
+ writer.Write(frame.headPosition);
+ writer.Write(frame.headRotation);
+ writer.Write(frame.handLeftPosition);
+ writer.Write(frame.handLeftRotation);
+ writer.Write(frame.handRightPosition);
+ writer.Write(frame.handRightRotation);
+ writer.Write(frame.voiceAmplitude);
+
+ writer.Write(frame.controllerLeftPose);
+ writer.Write(frame.controllerRightPose);
+ }
+
+ public static void Write(this BinaryWriter writer, Vector3 vec3)
+ {
+ writer.Write(vec3.x);
+ writer.Write(vec3.y);
+ writer.Write(vec3.z);
+ }
+
+ public static void Write(this BinaryWriter writer, Vector2 vec2)
+ {
+ writer.Write(vec2.x);
+ writer.Write(vec2.y);
+ }
+
+ public static void Write(this BinaryWriter writer, Quaternion quat)
+ {
+ writer.Write(quat.x);
+ writer.Write(quat.y);
+ writer.Write(quat.z);
+ writer.Write(quat.w);
+ }
+ public static void Write(this BinaryWriter writer, OvrAvatarDriver.ControllerPose pose)
+ {
+ writer.Write((uint)pose.buttons);
+ writer.Write((uint)pose.touches);
+ writer.Write(pose.joystickPosition);
+ writer.Write(pose.indexTrigger);
+ writer.Write(pose.handTrigger);
+ writer.Write(pose.isActive);
+ }
+}
+
+static class BinaryReaderExtensions
+{
+ public static OvrAvatarDriver.PoseFrame ReadPoseFrame(this BinaryReader reader)
+ {
+ return new OvrAvatarDriver.PoseFrame
+ {
+ headPosition = reader.ReadVector3(),
+ headRotation = reader.ReadQuaternion(),
+ handLeftPosition = reader.ReadVector3(),
+ handLeftRotation = reader.ReadQuaternion(),
+ handRightPosition = reader.ReadVector3(),
+ handRightRotation = reader.ReadQuaternion(),
+ voiceAmplitude = reader.ReadSingle(),
+
+ controllerLeftPose = reader.ReadControllerPose(),
+ controllerRightPose = reader.ReadControllerPose(),
+ };
+ }
+
+ public static Vector2 ReadVector2(this BinaryReader reader)
+ {
+ return new Vector2
+ {
+ x = reader.ReadSingle(),
+ y = reader.ReadSingle()
+ };
+ }
+
+ public static Vector3 ReadVector3(this BinaryReader reader)
+ {
+ return new Vector3
+ {
+ x = reader.ReadSingle(),
+ y = reader.ReadSingle(),
+ z = reader.ReadSingle()
+ };
+ }
+
+ public static Quaternion ReadQuaternion(this BinaryReader reader)
+ {
+ return new Quaternion
+ {
+ x = reader.ReadSingle(),
+ y = reader.ReadSingle(),
+ z = reader.ReadSingle(),
+ w = reader.ReadSingle(),
+ };
+ }
+ public static OvrAvatarDriver.ControllerPose ReadControllerPose(this BinaryReader reader)
+ {
+ return new OvrAvatarDriver.ControllerPose
+ {
+ buttons = (ovrAvatarButton)reader.ReadUInt32(),
+ touches = (ovrAvatarTouch)reader.ReadUInt32(),
+ joystickPosition = reader.ReadVector2(),
+ indexTrigger = reader.ReadSingle(),
+ handTrigger = reader.ReadSingle(),
+ isActive = reader.ReadBoolean(),
+ };
+ }
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarPacket.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarPacket.cs.meta
new file mode 100644
index 0000000..d9ad05f
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarPacket.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 3b7dd866fbed2654e838d772129dc70c
+timeCreated: 1464197799
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarProjectorRenderComponent.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarProjectorRenderComponent.cs
new file mode 100644
index 0000000..492971c
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarProjectorRenderComponent.cs
@@ -0,0 +1,65 @@
+using UnityEngine;
+using System.Collections;
+using System;
+using System.Collections.Generic;
+
+public class OvrAvatarProjectorRenderComponent : OvrAvatarRenderComponent {
+
+ Material material;
+
+ internal void InitializeProjectorRender(ovrAvatarRenderPart_ProjectorRender render, Shader shader, OvrAvatarRenderComponent target)
+ {
+ if (shader == null)
+ {
+ shader = Shader.Find("OvrAvatar/AvatarSurfaceShader");
+ }
+
+ material = CreateAvatarMaterial(gameObject.name + "_projector", shader);
+ material.EnableKeyword("PROJECTOR_ON");
+
+ Renderer renderer = target.GetComponent();
+ if (renderer != null)
+ {
+ List materials = new List(renderer.sharedMaterials);
+ materials.Add(material);
+ renderer.sharedMaterials = materials.ToArray();
+ }
+ }
+
+ internal void UpdateProjectorRender(OvrAvatarComponent component, ovrAvatarRenderPart_ProjectorRender render)
+ {
+ OvrAvatar.ConvertTransform(render.localTransform, this.transform);
+ material.SetMatrix("_ProjectorWorldToLocal", this.transform.worldToLocalMatrix);
+ component.UpdateAvatarMaterial(material, render.materialState);
+
+ }
+
+ void OnDrawGizmos()
+ {
+ Vector3 v000 = transform.localToWorldMatrix.MultiplyPoint(new Vector3(-1.0f, -1.0f, -1.0f));
+ Vector3 v100 = transform.localToWorldMatrix.MultiplyPoint(new Vector3(+1.0f, -1.0f, -1.0f));
+ Vector3 v010 = transform.localToWorldMatrix.MultiplyPoint(new Vector3(-1.0f, +1.0f, -1.0f));
+ Vector3 v110 = transform.localToWorldMatrix.MultiplyPoint(new Vector3(+1.0f, +1.0f, -1.0f));
+ Vector3 v001 = transform.localToWorldMatrix.MultiplyPoint(new Vector3(-1.0f, -1.0f, +1.0f));
+ Vector3 v101 = transform.localToWorldMatrix.MultiplyPoint(new Vector3(+1.0f, -1.0f, +1.0f));
+ Vector3 v011 = transform.localToWorldMatrix.MultiplyPoint(new Vector3(-1.0f, +1.0f, +1.0f));
+ Vector3 v111 = transform.localToWorldMatrix.MultiplyPoint(new Vector3(+1.0f, +1.0f, +1.0f));
+
+ Gizmos.color = Color.gray;
+
+ Gizmos.DrawLine(v000, v100);
+ Gizmos.DrawLine(v000, v010);
+ Gizmos.DrawLine(v010, v110);
+ Gizmos.DrawLine(v100, v110);
+
+ Gizmos.DrawLine(v000, v001);
+ Gizmos.DrawLine(v100, v101);
+ Gizmos.DrawLine(v010, v011);
+ Gizmos.DrawLine(v110, v111);
+
+ Gizmos.DrawLine(v001, v101);
+ Gizmos.DrawLine(v001, v011);
+ Gizmos.DrawLine(v011, v111);
+ Gizmos.DrawLine(v101, v111);
+ }
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarProjectorRenderComponent.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarProjectorRenderComponent.cs.meta
new file mode 100644
index 0000000..ee3e911
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarProjectorRenderComponent.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f909beaa7f33f914b90f9addaedcae18
+timeCreated: 1479156352
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarRemoteDriver.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarRemoteDriver.cs
new file mode 100644
index 0000000..13a0472
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarRemoteDriver.cs
@@ -0,0 +1,121 @@
+using UnityEngine;
+using System.Collections;
+using System;
+using System.Collections.Generic;
+using Oculus.Avatar;
+
+public class OvrAvatarRemoteDriver : OvrAvatarDriver
+{
+ Queue packetQueue = new Queue();
+
+ IntPtr CurrentSDKPacket = IntPtr.Zero;
+ float CurrentPacketTime = 0f;
+
+ const int MinPacketQueue = 1;
+ const int MaxPacketQueue = 4;
+
+ int CurrentSequence = -1;
+
+ // Used for legacy Unity only packet blending
+ bool isStreaming = false;
+ OvrAvatarPacket currentPacket = null;
+
+ public void QueuePacket(int sequence, OvrAvatarPacket packet)
+ {
+ if (sequence > CurrentSequence)
+ {
+ CurrentSequence = sequence;
+ packetQueue.Enqueue(packet);
+ }
+ }
+
+ public override void UpdateTransforms(IntPtr sdkAvatar)
+ {
+ switch(Mode)
+ {
+ case PacketMode.SDK:
+ UpdateFromSDKPacket(sdkAvatar);
+ break;
+ case PacketMode.Unity:
+ UpdateFromUnityPacket(sdkAvatar);
+ break;
+ default:
+ break;
+ }
+ }
+
+ private void UpdateFromSDKPacket(IntPtr sdkAvatar)
+ {
+
+ if (CurrentSDKPacket == IntPtr.Zero && packetQueue.Count >= MinPacketQueue)
+ {
+ CurrentSDKPacket = packetQueue.Dequeue().ovrNativePacket;
+ }
+
+ if (CurrentSDKPacket != IntPtr.Zero)
+ {
+ float PacketDuration = CAPI.ovrAvatarPacket_GetDurationSeconds(CurrentSDKPacket);
+ CAPI.ovrAvatar_UpdatePoseFromPacket(sdkAvatar, CurrentSDKPacket, Mathf.Min(PacketDuration, CurrentPacketTime));
+ CurrentPacketTime += Time.deltaTime;
+
+ if (CurrentPacketTime > PacketDuration)
+ {
+ CAPI.ovrAvatarPacket_Free(CurrentSDKPacket);
+ CurrentSDKPacket = IntPtr.Zero;
+ CurrentPacketTime = CurrentPacketTime - PacketDuration;
+
+ //Throw away packets deemed too old.
+ while (packetQueue.Count > MaxPacketQueue)
+ {
+ packetQueue.Dequeue();
+ }
+ }
+ }
+ }
+
+ private void UpdateFromUnityPacket(IntPtr sdkAvatar)
+ {
+ // If we're not currently streaming, check to see if we've buffered enough
+ if (!isStreaming && packetQueue.Count > MinPacketQueue)
+ {
+ currentPacket = packetQueue.Dequeue();
+ isStreaming = true;
+ }
+
+ // If we are streaming, update our pose
+ if (isStreaming)
+ {
+ CurrentPacketTime += Time.deltaTime;
+
+ // If we've elapsed past our current packet, advance
+ while (CurrentPacketTime > currentPacket.Duration)
+ {
+
+ // If we're out of packets, stop streaming and
+ // lock to the final frame
+ if (packetQueue.Count == 0)
+ {
+ CurrentPose = currentPacket.FinalFrame;
+ CurrentPacketTime = 0.0f;
+ currentPacket = null;
+ isStreaming = false;
+ return;
+ }
+
+ while (packetQueue.Count > MaxPacketQueue)
+ {
+ packetQueue.Dequeue();
+ }
+
+ // Otherwise, dequeue the next packet
+ CurrentPacketTime -= currentPacket.Duration;
+ currentPacket = packetQueue.Dequeue();
+ }
+
+ // Compute the pose based on our current time offset in the packet
+ CurrentPose = currentPacket.GetPoseFrame(CurrentPacketTime);
+
+ UpdateTransformsFromPose(sdkAvatar);
+ }
+ }
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarRemoteDriver.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarRemoteDriver.cs.meta
new file mode 100644
index 0000000..c38a754
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarRemoteDriver.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c198a42a3843ca04fa633b60f428ff51
+timeCreated: 1464302604
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarRenderComponent.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarRenderComponent.cs
new file mode 100644
index 0000000..4b94d7f
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarRenderComponent.cs
@@ -0,0 +1,109 @@
+using UnityEngine;
+using System.Collections;
+using System.Collections.Generic;
+using System;
+using Oculus.Avatar;
+
+public class OvrAvatarRenderComponent : MonoBehaviour {
+
+ private bool firstSkinnedUpdate = true;
+ public SkinnedMeshRenderer mesh;
+ public Transform[] bones;
+
+ protected void UpdateActive(OvrAvatar avatar, ovrAvatarVisibilityFlags mask)
+ {
+ bool active = avatar.ShowFirstPerson && (mask & ovrAvatarVisibilityFlags.FirstPerson) != 0;
+ active |= avatar.ShowThirdPerson && (mask & ovrAvatarVisibilityFlags.ThirdPerson) != 0;
+ this.gameObject.SetActive(active);
+ }
+
+ protected SkinnedMeshRenderer CreateSkinnedMesh(ulong assetID, ovrAvatarVisibilityFlags visibilityMask, int thirdPersonLayer, int firstPersonLayer, int sortingOrder)
+ {
+ OvrAvatarAssetMesh meshAsset = (OvrAvatarAssetMesh)OvrAvatarSDKManager.Instance.GetAsset(assetID);
+ if (meshAsset == null)
+ {
+ throw new Exception("Couldn't find mesh for asset " + assetID);
+ }
+ if ((visibilityMask & ovrAvatarVisibilityFlags.ThirdPerson) != 0)
+ {
+ this.gameObject.layer = thirdPersonLayer;
+ }
+ else
+ {
+ this.gameObject.layer = firstPersonLayer;
+ }
+ SkinnedMeshRenderer renderer = meshAsset.CreateSkinnedMeshRendererOnObject(gameObject);
+ renderer.quality = SkinQuality.Bone4;
+ renderer.sortingOrder = sortingOrder;
+ renderer.updateWhenOffscreen = true;
+ if ((visibilityMask & ovrAvatarVisibilityFlags.SelfOccluding) == 0)
+ {
+ renderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
+ }
+ return renderer;
+ }
+
+ protected void UpdateSkinnedMesh(OvrAvatar avatar, Transform[] bones, ovrAvatarTransform localTransform, ovrAvatarVisibilityFlags visibilityMask, IntPtr renderPart)
+ {
+ UpdateActive(avatar, visibilityMask);
+ OvrAvatar.ConvertTransform(localTransform, this.transform);
+ ovrAvatarRenderPartType type = CAPI.ovrAvatarRenderPart_GetType(renderPart);
+ UInt64 dirtyJoints;
+ switch (type)
+ {
+ case ovrAvatarRenderPartType.SkinnedMeshRender:
+ dirtyJoints = CAPI.ovrAvatarSkinnedMeshRender_GetDirtyJoints(renderPart);
+ break;
+ case ovrAvatarRenderPartType.SkinnedMeshRenderPBS:
+ dirtyJoints = CAPI.ovrAvatarSkinnedMeshRenderPBS_GetDirtyJoints(renderPart);
+ break;
+ case ovrAvatarRenderPartType.SkinnedMeshRenderPBS_V2:
+ dirtyJoints = CAPI.ovrAvatarSkinnedMeshRenderPBSV2_GetDirtyJoints(renderPart);
+ break;
+ default:
+ throw new Exception("Unhandled render part type: " + type);
+ }
+ for (UInt32 i = 0; i < 64; i++)
+ {
+ UInt64 dirtyMask = (ulong)1 << (int)i;
+ // We need to make sure that we fully update the initial position of
+ // Skinned mesh renderers, then, thereafter, we can only update dirty joints
+ if ((firstSkinnedUpdate && i < bones.Length) ||
+ (dirtyMask & dirtyJoints) != 0)
+ {
+ //This joint is dirty and needs to be updated
+ Transform targetBone = bones[i];
+ ovrAvatarTransform transform;
+ switch (type)
+ {
+ case ovrAvatarRenderPartType.SkinnedMeshRender:
+ transform = CAPI.ovrAvatarSkinnedMeshRender_GetJointTransform(renderPart, i);
+ break;
+ case ovrAvatarRenderPartType.SkinnedMeshRenderPBS:
+ transform = CAPI.ovrAvatarSkinnedMeshRenderPBS_GetJointTransform(renderPart, i);
+ break;
+ case ovrAvatarRenderPartType.SkinnedMeshRenderPBS_V2:
+ transform = CAPI.ovrAvatarSkinnedMeshRenderPBSV2_GetJointTransform(renderPart, i);
+ break;
+ default:
+ throw new Exception("Unhandled render part type: " + type);
+ }
+ OvrAvatar.ConvertTransform(transform, targetBone);
+ }
+ }
+ firstSkinnedUpdate = false;
+ }
+
+ protected Material CreateAvatarMaterial(string name, Shader shader)
+ {
+ if (shader == null)
+ {
+ throw new Exception("No shader provided for avatar material.");
+ }
+ Material mat = new Material(shader);
+ mat.name = name;
+ return mat;
+ }
+
+
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarRenderComponent.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarRenderComponent.cs.meta
new file mode 100644
index 0000000..f1d51b3
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarRenderComponent.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 6a9e8691abb99884880df5ecada5e4d8
+timeCreated: 1479155394
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarSDKCAPI.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarSDKCAPI.cs
new file mode 100644
index 0000000..e15bda4
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarSDKCAPI.cs
@@ -0,0 +1,1059 @@
+using UnityEngine;
+using System;
+using System.Runtime.InteropServices;
+using Oculus.Avatar;
+
+//This needs to be the csharp equivalent of ovrAvatarCapabilities in OVR_Avatar.h
+[Flags]
+public enum ovrAvatarCapabilities
+{
+ Body = 1 << 0,
+ Hands = 1 << 1,
+ Base = 1 << 2,
+ BodyTilt = 1 << 4,
+ All = -1
+};
+
+// This needs to be the csharp equivalent of ovrAvatarMessageType in OVR_Avatar.h
+public enum ovrAvatarMessageType {
+ AvatarSpecification,
+ AssetLoaded,
+ Count
+};
+
+// This needs to be the csharp equivalent of ovrAvatarMessage_AvatarSpecification in OVR_Avatar.h
+public struct ovrAvatarMessage_AvatarSpecification {
+ public IntPtr avatarSpec; //ovrAvatarSpecification*, opaque pointer
+ public UInt64 oculusUserID;
+};
+
+// This needs to be the csharp equivalent of ovrAvatarMessage_AssetLoaded in OVR_Avatar.h
+public struct ovrAvatarMessage_AssetLoaded {
+ public UInt64 assetID;
+ public IntPtr asset; //ovrAvatarAsset*, opaque pointer
+};
+
+// This needs to be the csharp equivalent of ovrAvatarAssetType in OVR_Avatar.h
+public enum ovrAvatarAssetType {
+ Mesh,
+ Texture,
+ Pose,
+ Material,
+ CombinedMesh,
+ PBSMaterial,
+ Count
+};
+
+// This needs to be the csharp equivalent of ovrAvatarMeshVertex in OVR_Avatar.h
+public struct ovrAvatarMeshVertex
+{
+ public float x;
+ public float y;
+ public float z;
+ public float nx;
+ public float ny;
+ public float nz;
+ public float tx;
+ public float ty;
+ public float tz;
+ public float tw;
+ public float u;
+ public float v;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
+ public byte[] blendIndices; ///< Indices into the bind pose
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
+ public float[] blendWeights; ///< Blend weights for each component in the bind pose
+};
+
+// This needs to be the csharp equivalent of ovrAvatarMeshVertex in OVR_Avatar.h
+public struct ovrAvatarMeshVertexV2
+{
+ public float x;
+ public float y;
+ public float z;
+ public float nx;
+ public float ny;
+ public float nz;
+ public float tx;
+ public float ty;
+ public float tz;
+ public float tw;
+ public float u;
+ public float v;
+ public float r;
+ public float g;
+ public float b;
+ public float a;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
+ public byte[] blendIndices; ///< Indices into the bind pose
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
+ public float[] blendWeights; ///< Blend weights for each component in the bind pose
+};
+
+
+// This needs to be the csharp equivalent of ovrAvatarMeshAssetData in OVR_Avatar.h
+public struct ovrAvatarMeshAssetData
+{
+ public UInt32 vertexCount;
+ public IntPtr vertexBuffer; //const ovrAvatarMeshVertex*
+ public UInt32 indexCount;
+ public IntPtr indexBuffer; //const uint16t*
+ public ovrAvatarSkinnedMeshPose skinnedBindPose;
+};
+
+/// Mesh Asset Data V2
+///
+public struct ovrAvatarMeshAssetDataV2
+{
+ public UInt32 vertexCount;
+ public IntPtr vertexBuffer; //const ovrAvatarMeshVertexV2*
+ public UInt32 indexCount;
+ public IntPtr indexBuffer; //const uint16t*
+ public ovrAvatarSkinnedMeshPose skinnedBindPose;
+};
+
+// This needs to be the csharp equivalent of ovrAvatarTextureFormat in OVR_Avatar.h
+public enum ovrAvatarTextureFormat {
+ RGB24,
+ DXT1,
+ DXT5,
+ ASTC_RGB_6x6,
+ ASTC_RGB_6x6_MIPMAPS,
+ Count
+};
+
+// This needs to be the csharp equivalent of ovrAvatarTextureAssetData in OVR_Avatar.h
+public struct ovrAvatarTextureAssetData {
+ public ovrAvatarTextureFormat format;
+ public UInt32 sizeX;
+ public UInt32 sizeY;
+ public UInt32 mipCount;
+ public UInt64 textureDataSize;
+ public IntPtr textureData; // const uint8_t*
+};
+
+// This needs to be the csharp equivalent of ovrAvatarRenderPartType in OVR_Avatar.h
+public enum ovrAvatarRenderPartType
+{
+ SkinnedMeshRender,
+ SkinnedMeshRenderPBS,
+ ProjectorRender,
+ SkinnedMeshRenderPBS_V2,
+ Count
+};
+
+// This needs to be the csharp equivalent of ovrAvatarTransform in OVR_Avatar.h
+public struct ovrAvatarTransform
+{
+ public Vector3 position;
+ public Quaternion orientation;
+ public Vector3 scale;
+};
+
+// This needs to be the csharp equivalent of ovrAvatarButton in OVR_Avatar.h
+[Flags]
+public enum ovrAvatarButton
+{
+ One = 0x0001,
+ Two = 0x0002,
+ Three = 0x0004,
+ Joystick = 0x0008,
+}
+
+// This needs to be the csharp equivalent of ovrAvatarTouch in OVR_Avatar.h
+[Flags]
+public enum ovrAvatarTouch
+{
+ One = 0x0001,
+ Two = 0x0002,
+ Joystick = 0x0004,
+ ThumbRest = 0x0008,
+ Index = 0x0010,
+ Pointing = 0x0040,
+ ThumbUp = 0x0080,
+}
+
+// This needs to be the csharp equivalent of ovrAvatarHandInputState in OVR_Avatar.h
+public struct ovrAvatarHandInputState
+{
+ public ovrAvatarTransform transform;
+ public ovrAvatarButton buttonMask;
+ public ovrAvatarTouch touchMask;
+ public float joystickX;
+ public float joystickY;
+ public float indexTrigger;
+ public float handTrigger;
+ [MarshalAs(UnmanagedType.I1)]
+ public bool isActive;
+};
+
+// This needs to be the csharp equivalent of ovrAvatarComponent in OVR_Avatar.h
+public struct ovrAvatarComponent
+{
+ public ovrAvatarTransform transform;
+ public UInt32 renderPartCount;
+ public IntPtr renderParts; //const ovrAvatarRenderPart* const*
+
+ [MarshalAs(UnmanagedType.LPStr)]
+ public string name;
+};
+
+// This needs to be the csharp equivalent of ovrAvatarBodyComponent in OVR_Avatar.h
+public struct ovrAvatarBaseComponent
+{
+ public Vector3 basePosition;
+ public IntPtr renderComponent; //const ovrAvatarComponent*
+};
+
+// This needs to be the csharp equivalent of ovrAvatarBodyComponent in OVR_Avatar.h
+public struct ovrAvatarBodyComponent {
+ public ovrAvatarTransform leftEyeTransform;
+ public ovrAvatarTransform rightEyeTransform;
+ public ovrAvatarTransform centerEyeTransform;
+ public IntPtr renderComponent; //const ovrAvatarComponent*
+};
+
+// This needs to be the csharp equivalent of ovrAvatarControllerComponent in OVR_Avatar.h
+public struct ovrAvatarControllerComponent
+{
+ public ovrAvatarHandInputState inputState;
+ public IntPtr renderComponent; //const ovrAvatarComponent*
+};
+
+// This needs to be the csharp equivalent of ovrAvatarHandComponent in OVR_Avatar.h
+public struct ovrAvatarHandComponent {
+ public ovrAvatarHandInputState inputState;
+ public IntPtr renderComponent; //const ovrAvatarComponent*
+};
+
+// This needs to be the csharp equivalent of ovrAvatarMaterialLayerBlendMode in OVR_Avatar.h
+public enum ovrAvatarMaterialLayerBlendMode{
+ Add,
+ Multiply,
+ Count
+};
+
+// This needs to be the csharp equivalent of ovrAvatarMaterialLayerSampleMode in OVR_Avatar.h
+public enum ovrAvatarMaterialLayerSampleMode{
+ Color,
+ Texture,
+ TextureSingleChannel,
+ Parallax,
+ Count
+};
+
+// This needs to be the csharp equivalent of ovrAvatarMaterialLayerMaskType in OVR_Avatar.h
+public enum ovrAvatarMaterialMaskType{
+ None,
+ Positional,
+ ViewReflection,
+ Fresnel,
+ Pulse,
+ Count
+};
+
+// This needs to be the csharp equivalent of Controller Types from OVR_Avatar.h
+public enum ovrAvatarControllerType
+{
+ Touch,
+ Malibu,
+ Go,
+
+ Count,
+};
+
+public enum ovrAvatarAssetLevelOfDetail
+{
+ Lowest = 1,
+ Medium = 3,
+ Highest = 5,
+};
+
+public enum ovrAvatarLookAndFeelVersion
+{
+ Unknown = -1,
+ One = 0,
+ Two = 1,
+};
+
+// This needs to be the csharp equivalent of ovrAvatarMaterialLayerState in OVR_Avatar.h
+public struct ovrAvatarMaterialLayerState{
+ public ovrAvatarMaterialLayerBlendMode blendMode;
+ public ovrAvatarMaterialLayerSampleMode sampleMode;
+ public ovrAvatarMaterialMaskType maskType;
+ public Vector4 layerColor;
+ public Vector4 sampleParameters;
+ public UInt64 sampleTexture;
+ public Vector4 sampleScaleOffset;
+ public Vector4 maskParameters;
+ public Vector4 maskAxis;
+
+ static bool VectorEquals(Vector4 a, Vector4 b)
+ {
+ return a.x == b.x && a.y == b.y && a.z == b.z && a.w == b.w;
+ }
+
+ public override bool Equals(object obj)
+ {
+ if (!(obj is ovrAvatarMaterialLayerState))
+ {
+ return false;
+ }
+ ovrAvatarMaterialLayerState other = (ovrAvatarMaterialLayerState)obj;
+ if (blendMode != other.blendMode) return false;
+ if (sampleMode != other.sampleMode) return false;
+ if (maskType != other.maskType) return false;
+ if (!VectorEquals(layerColor, other.layerColor)) return false;
+ if (!VectorEquals(sampleParameters, other.sampleParameters)) return false;
+ if (sampleTexture != other.sampleTexture) return false;
+ if (!VectorEquals(sampleScaleOffset, other.sampleScaleOffset)) return false;
+ if (!VectorEquals(maskParameters, other.maskParameters)) return false;
+ if (!VectorEquals(maskAxis, other.maskAxis)) return false;
+ return true;
+ }
+ public override int GetHashCode()
+ {
+ return blendMode.GetHashCode() ^
+ sampleMode.GetHashCode() ^
+ maskType.GetHashCode() ^
+ layerColor.GetHashCode() ^
+ sampleParameters.GetHashCode() ^
+ sampleTexture.GetHashCode() ^
+ sampleScaleOffset.GetHashCode() ^
+ maskParameters.GetHashCode() ^
+ maskAxis.GetHashCode();
+ }
+};
+
+// This needs to be the csharp equivalent of ovrAvatarMaterialState in OVR_Avatar.h
+public struct ovrAvatarMaterialState
+{
+ public Vector4 baseColor;
+ public ovrAvatarMaterialMaskType baseMaskType;
+ public Vector4 baseMaskParameters;
+ public Vector4 baseMaskAxis;
+ public ovrAvatarMaterialLayerSampleMode sampleMode;
+ public UInt64 alphaMaskTextureID;
+ public Vector4 alphaMaskScaleOffset;
+ public UInt64 normalMapTextureID;
+ public Vector4 normalMapScaleOffset;
+ public UInt64 parallaxMapTextureID;
+ public Vector4 parallaxMapScaleOffset;
+ public UInt64 roughnessMapTextureID;
+ public Vector4 roughnessMapScaleOffset;
+ public UInt32 layerCount;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
+ public ovrAvatarMaterialLayerState[] layers;
+
+ static bool VectorEquals(Vector4 a, Vector4 b)
+ {
+ return a.x == b.x && a.y == b.y && a.z == b.z && a.w == b.w;
+ }
+
+ public override bool Equals(object obj)
+ {
+ if (!(obj is ovrAvatarMaterialState))
+ {
+ return false;
+ }
+ ovrAvatarMaterialState other = (ovrAvatarMaterialState)obj;
+ if (!VectorEquals(baseColor, other.baseColor)) return false;
+ if (baseMaskType != other.baseMaskType) return false;
+ if (!VectorEquals(baseMaskParameters, other.baseMaskParameters)) return false;
+ if (!VectorEquals(baseMaskAxis, other.baseMaskAxis)) return false;
+ if (sampleMode != other.sampleMode) return false;
+ if (alphaMaskTextureID != other.alphaMaskTextureID) return false;
+ if (!VectorEquals(alphaMaskScaleOffset, other.alphaMaskScaleOffset)) return false;
+ if (normalMapTextureID != other.normalMapTextureID) return false;
+ if (!VectorEquals(normalMapScaleOffset, other.normalMapScaleOffset)) return false;
+ if (parallaxMapTextureID != other.parallaxMapTextureID) return false;
+ if (!VectorEquals(parallaxMapScaleOffset, other.parallaxMapScaleOffset)) return false;
+ if (roughnessMapTextureID != other.roughnessMapTextureID) return false;
+ if (!VectorEquals(roughnessMapScaleOffset, other.roughnessMapScaleOffset)) return false;
+ if (layerCount != other.layerCount) return false;
+ for (int i = 0; i < layerCount; ++i)
+ {
+ if (!layers[i].Equals(other.layers[i])) return false;
+ }
+ return true;
+ }
+
+ public override int GetHashCode()
+ {
+ int hash = 0;
+ hash ^= baseColor.GetHashCode();
+ hash ^= baseMaskType.GetHashCode();
+ hash ^= baseMaskParameters.GetHashCode();
+ hash ^= baseMaskAxis.GetHashCode();
+ hash ^= sampleMode.GetHashCode();
+ hash ^= alphaMaskTextureID.GetHashCode();
+ hash ^= alphaMaskScaleOffset.GetHashCode();
+ hash ^= normalMapTextureID.GetHashCode();
+ hash ^= normalMapScaleOffset.GetHashCode();
+ hash ^= parallaxMapTextureID.GetHashCode();
+ hash ^= parallaxMapScaleOffset.GetHashCode();
+ hash ^= roughnessMapTextureID.GetHashCode();
+ hash ^= roughnessMapScaleOffset.GetHashCode();
+ hash ^= layerCount.GetHashCode();
+ for (int i = 0; i < layerCount; ++i)
+ {
+ hash ^= layers[i].GetHashCode();
+ }
+ return hash;
+ }
+};
+
+public struct ovrAvatarPBSMaterialState
+{
+ public Vector4 baseColor; ///< Underlying base color for the material
+ public UInt64 albedoTextureID; ///< Texture id for the albedo map
+ public Vector4 albedoMultiplier; ///< Multiplier for albedo texture sample
+ public UInt64 metallicnessTextureID; ///< Texture id for the metal map
+ public float glossinessScale; ///< Glossiness factor
+ public UInt64 normalTextureID; ///< Texture id for the normal map
+ public UInt64 heightTextureID; ///< Texture id for the height map
+ public UInt64 occlusionTextureID; ///< Texture id for the occlusion map
+ public UInt64 emissionTextureID; ///< Texture id for the emission map
+ public Vector4 emissionMultiplier; ///< Multiplier for emission texture sample
+ public UInt64 detailMaskTextureID; ///< Texture id for the detail mask map
+ public UInt64 detailAlbedoTextureID; ///< Texture id for the detail albedo map
+ public UInt64 detailNormalTextureID; ///< Texture id for the detail normal map
+ static bool VectorEquals(Vector4 a, Vector4 b)
+ {
+ return a.x == b.x && a.y == b.y && a.z == b.z && a.w == b.w;
+ }
+
+ public override bool Equals(object obj)
+ {
+ if (!(obj is ovrAvatarPBSMaterialState))
+ {
+ return false;
+ }
+ ovrAvatarPBSMaterialState other = (ovrAvatarPBSMaterialState)obj;
+ if (!VectorEquals(baseColor, other.baseColor)) return false;
+ if (albedoTextureID != other.albedoTextureID) return false;
+ if (!VectorEquals(albedoMultiplier, other.albedoMultiplier)) return false;
+ if (metallicnessTextureID != other.metallicnessTextureID) return false;
+ if (glossinessScale != other.glossinessScale) return false;
+ if (normalTextureID != other.normalTextureID) return false;
+ if (heightTextureID != other.heightTextureID) return false;
+ if (occlusionTextureID != other.occlusionTextureID) return false;
+ if (emissionTextureID != other.emissionTextureID) return false;
+ if (!VectorEquals(emissionMultiplier, other.emissionMultiplier)) return false;
+ if (detailMaskTextureID != other.detailMaskTextureID) return false;
+ if (detailAlbedoTextureID != other.detailAlbedoTextureID) return false;
+ if (detailNormalTextureID != other.detailNormalTextureID) return false;
+ return true;
+ }
+ public override int GetHashCode()
+ {
+ return baseColor.GetHashCode() ^
+ albedoTextureID.GetHashCode() ^
+ albedoMultiplier.GetHashCode() ^
+ metallicnessTextureID.GetHashCode() ^
+ glossinessScale.GetHashCode() ^
+ normalTextureID.GetHashCode() ^
+ heightTextureID.GetHashCode() ^
+ occlusionTextureID.GetHashCode() ^
+ emissionTextureID.GetHashCode() ^
+ emissionMultiplier.GetHashCode() ^
+ detailMaskTextureID.GetHashCode() ^
+ detailAlbedoTextureID.GetHashCode() ^
+ detailNormalTextureID.GetHashCode();
+ }
+};
+
+public class OvrAvatarAssetMaterial : OvrAvatarAsset
+{
+ public OvrAvatarAssetMaterial(UInt64 id, IntPtr mat)
+ {
+ assetID = id;
+ material = CAPI.ovrAvatarAsset_GetMaterialState(mat);
+ }
+
+ public ovrAvatarMaterialState material;
+}
+// This needs to be the csharp equivalent of ovrAvatarSkinnedMeshPose in OVR_Avatar.h
+public struct ovrAvatarSkinnedMeshPose
+{
+ public UInt32 jointCount;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
+ public ovrAvatarTransform[] jointTransform;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
+ public int[] jointParents;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
+ public IntPtr[] jointNames; //const char * jointNames[64];
+};
+
+
+[Flags]
+public enum ovrAvatarVisibilityFlags
+{
+ FirstPerson = 1 << 0,
+ ThirdPerson = 1 << 1,
+ SelfOccluding = 1 << 2,
+};
+
+// This needs to be the csharp equivalent of ovrAvatarRenderPart_SkinnedMeshRender in OVR_Avatar.h
+public struct ovrAvatarRenderPart_SkinnedMeshRender
+{
+ public ovrAvatarTransform localTransform;
+ public ovrAvatarVisibilityFlags visibilityMask;
+ public UInt64 meshAssetID;
+ public ovrAvatarMaterialState materialState;
+ public ovrAvatarSkinnedMeshPose skinnedPose;
+};
+
+// This needs to be the csharp equivalent of ovrAvatarRenderPart_SkinnedMeshRenderPBS in OVR_Avatar.h
+public struct ovrAvatarRenderPart_SkinnedMeshRenderPBS
+{
+ public ovrAvatarTransform localTransform;
+ public ovrAvatarVisibilityFlags visibilityMask;
+ public UInt64 meshAssetID;
+ public UInt64 albedoTextureAssetID;
+ public UInt64 surfaceTextureAssetID;
+ public ovrAvatarSkinnedMeshPose skinnedPose;
+};
+
+// This needs to be the csharp equivalent of ovrAvatarRenderPart_ProjectorRender in OVR_Avatar.h
+public struct ovrAvatarRenderPart_ProjectorRender
+{
+ public ovrAvatarTransform localTransform;
+ public UInt32 componentIndex;
+ public UInt32 renderPartIndex;
+ public ovrAvatarMaterialState materialState;
+};
+
+// This needs to be the csharp equivalent of ovrAvatarRenderPart_SkinnedMeshRenderPBS_V2 in OVR_Avatar.h
+public struct ovrAvatarRenderPart_SkinnedMeshRenderPBS_V2
+{
+ public ovrAvatarTransform localTransform;
+ public ovrAvatarVisibilityFlags visibilityMask;
+ public UInt64 meshAssetID;
+ public ovrAvatarPBSMaterialState materialState;
+ public ovrAvatarSkinnedMeshPose skinnedPose;
+};
+
+// This needs to be the csharp equivalent of ovrAvatarHandGesture in OVR_Avatar.h
+public enum ovrAvatarHandGesture {
+ Default,
+ GripSphere,
+ GripCube,
+ Count
+};
+
+public enum ovrAvatarBodyPartType
+{
+ Body,
+ Clothing,
+ Eyewear,
+ Hair,
+ Beard,
+ Count
+};
+
+namespace Oculus.Avatar
+{
+ public class CAPI
+ {
+#if UNITY_ANDROID && !UNITY_EDITOR
+ private const string LibFile = "ovravatarloader";
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatar_InitializeAndroidUnity(string appID);
+#else
+ private const string LibFile = "libovravatar";
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatar_Initialize(string appID);
+#endif
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatar_Shutdown();
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern IntPtr ovrAvatarMessage_Pop();
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern ovrAvatarMessageType ovrAvatarMessage_GetType(IntPtr msg);
+
+ public static ovrAvatarMessage_AvatarSpecification ovrAvatarMessage_GetAvatarSpecification(
+ IntPtr msg)
+ {
+ IntPtr ptr = ovrAvatarMessage_GetAvatarSpecification_Native(msg);
+ return (ovrAvatarMessage_AvatarSpecification)Marshal.PtrToStructure(
+ ptr, typeof(ovrAvatarMessage_AvatarSpecification));
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint =
+ "ovrAvatarMessage_GetAvatarSpecification")]
+ private static extern IntPtr ovrAvatarMessage_GetAvatarSpecification_Native(IntPtr msg);
+
+ public static ovrAvatarMessage_AssetLoaded ovrAvatarMessage_GetAssetLoaded(
+ IntPtr msg)
+ {
+ IntPtr ptr = ovrAvatarMessage_GetAssetLoaded_Native(msg);
+ return (ovrAvatarMessage_AssetLoaded)Marshal.PtrToStructure(
+ ptr, typeof(ovrAvatarMessage_AssetLoaded));
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint =
+ "ovrAvatarMessage_GetAssetLoaded")]
+ private static extern IntPtr ovrAvatarMessage_GetAssetLoaded_Native(IntPtr msg);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatarMessage_Free(IntPtr msg);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern IntPtr ovrAvatarSpecificationRequest_Create(UInt64 userID);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatarSpecificationRequest_Destroy(IntPtr specificationRequest);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatarSpecificationRequest_SetCombineMeshes(IntPtr specificationRequest, bool useCombinedMesh);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatarSpecificationRequest_SetLookAndFeelVersion(IntPtr specificationRequest, ovrAvatarLookAndFeelVersion version);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatarSpecificationRequest_SetLevelOfDetail(IntPtr specificationRequest, ovrAvatarAssetLevelOfDetail lod);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatar_RequestAvatarSpecification(UInt64 userID);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatar_RequestAvatarSpecificationFromSpecRequest(IntPtr specificationRequest);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern IntPtr ovrAvatar_Create(IntPtr avatarSpecification,
+ ovrAvatarCapabilities capabilities);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatar_Destroy(IntPtr avatar);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatarPose_UpdateBody(
+ IntPtr avatar, ovrAvatarTransform headPose);
+
+ public static void ovrAvatarPose_UpdateVoiceVisualization(
+ IntPtr avatar, float[] pcmData)
+ {
+ ovrAvatarPose_UpdateVoiceVisualization_Native(
+ avatar, (UInt32)pcmData.Length, pcmData);
+ }
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint =
+ "ovrAvatarPose_UpdateVoiceVisualization")]
+ private static extern void ovrAvatarPose_UpdateVoiceVisualization_Native(
+ IntPtr avatar, UInt32 pcmDataSize, [In] float[] pcmData);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatarPose_UpdateHands(
+ IntPtr avatar,
+ ovrAvatarHandInputState inputStateLeft,
+ ovrAvatarHandInputState inputStateRight);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatarPose_Update3DofHands(
+ IntPtr avatar,
+ IntPtr inputStateLeft,
+ IntPtr inputStateRight,
+ ovrAvatarControllerType type);
+
+ public static void ovrAvatarPose_UpdateSDK3DofHands(
+ IntPtr avatar,
+ ovrAvatarHandInputState inputStateLeft,
+ ovrAvatarHandInputState inputStateRight,
+ ovrAvatarControllerType type)
+ {
+ System.IntPtr leftPtr = Marshal.AllocHGlobal(Marshal.SizeOf(inputStateLeft));
+ System.IntPtr rightPtr = Marshal.AllocHGlobal(Marshal.SizeOf(inputStateRight));
+ Marshal.StructureToPtr(inputStateLeft, leftPtr, false);
+ Marshal.StructureToPtr(inputStateRight, rightPtr, false);
+
+ ovrAvatar_SetLeftControllerVisibility(avatar, true);
+ ovrAvatar_SetRightControllerVisibility(avatar, true);
+ ovrAvatar_SetLeftHandVisibility(avatar, true);
+ ovrAvatar_SetRightHandVisibility(avatar, true);
+ ovrAvatarPose_Update3DofHands(avatar, leftPtr, rightPtr, type);
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatarPose_Finalize(IntPtr avatar, float elapsedSeconds);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatar_SetLeftControllerVisibility(IntPtr avatar, bool show);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatar_SetRightControllerVisibility(IntPtr avatar, bool show);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatar_SetLeftHandVisibility(IntPtr avatar, bool show);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatar_SetRightHandVisibility(IntPtr avatar, bool show);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern UInt32 ovrAvatarComponent_Count(IntPtr avatar);
+
+ public static ovrAvatarComponent ovrAvatarComponent_Get(
+ IntPtr avatar, UInt32 index)
+ {
+ IntPtr ptr = ovrAvatarComponent_Get_Native(avatar, index);
+ return (ovrAvatarComponent)Marshal.PtrToStructure(
+ ptr, typeof(ovrAvatarComponent));
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint =
+ "ovrAvatarComponent_Get")]
+ public static extern IntPtr ovrAvatarComponent_Get_Native(IntPtr avatar, UInt32 index);
+
+ public static ovrAvatarBaseComponent? ovrAvatarPose_GetBaseComponent(
+ IntPtr avatar)
+ {
+ IntPtr ptr = ovrAvatarPose_GetBaseComponent_Native(avatar);
+ return ptr == IntPtr.Zero
+ ? (ovrAvatarBaseComponent?)null
+ : (ovrAvatarBaseComponent)Marshal.PtrToStructure(ptr, typeof(ovrAvatarBaseComponent));
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint =
+ "ovrAvatarPose_GetBaseComponent")]
+ private static extern IntPtr ovrAvatarPose_GetBaseComponent_Native(IntPtr avatar);
+
+ public static ovrAvatarBodyComponent? ovrAvatarPose_GetBodyComponent(
+ IntPtr avatar)
+ {
+ IntPtr ptr = ovrAvatarPose_GetBodyComponent_Native(avatar);
+ return ptr == IntPtr.Zero
+ ? (ovrAvatarBodyComponent?)null
+ : (ovrAvatarBodyComponent)Marshal.PtrToStructure(ptr, typeof(ovrAvatarBodyComponent));
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint =
+ "ovrAvatarPose_GetBodyComponent")]
+ private static extern IntPtr ovrAvatarPose_GetBodyComponent_Native(IntPtr avatar);
+
+ public static ovrAvatarControllerComponent? ovrAvatarPose_GetLeftControllerComponent(
+ IntPtr avatar)
+ {
+ IntPtr ptr = ovrAvatarPose_GetLeftControllerComponent_Native(avatar);
+ return ptr == IntPtr.Zero
+ ? (ovrAvatarControllerComponent?)null
+ : (ovrAvatarControllerComponent)Marshal.PtrToStructure(ptr, typeof(ovrAvatarControllerComponent));
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint =
+ "ovrAvatarPose_GetLeftControllerComponent")]
+ private static extern IntPtr ovrAvatarPose_GetLeftControllerComponent_Native(IntPtr avatar);
+
+ public static ovrAvatarControllerComponent? ovrAvatarPose_GetRightControllerComponent(
+ IntPtr avatar)
+ {
+ IntPtr ptr = ovrAvatarPose_GetRightControllerComponent_Native(avatar);
+ return ptr == IntPtr.Zero
+ ? (ovrAvatarControllerComponent?)null
+ : (ovrAvatarControllerComponent)Marshal.PtrToStructure(ptr, typeof(ovrAvatarControllerComponent));
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint =
+ "ovrAvatarPose_GetRightControllerComponent")]
+ private static extern IntPtr ovrAvatarPose_GetRightControllerComponent_Native(IntPtr avatar);
+
+ public static ovrAvatarHandComponent? ovrAvatarPose_GetLeftHandComponent(
+ IntPtr avatar)
+ {
+ IntPtr ptr = ovrAvatarPose_GetLeftHandComponent_Native(avatar);
+ return ptr == IntPtr.Zero
+ ? (ovrAvatarHandComponent?)null
+ : (ovrAvatarHandComponent)Marshal.PtrToStructure(ptr, typeof(ovrAvatarHandComponent));
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint =
+ "ovrAvatarPose_GetLeftHandComponent")]
+ private static extern IntPtr ovrAvatarPose_GetLeftHandComponent_Native(IntPtr avatar);
+
+ public static ovrAvatarHandComponent? ovrAvatarPose_GetRightHandComponent(
+ IntPtr avatar)
+ {
+ IntPtr ptr = ovrAvatarPose_GetRightHandComponent_Native(avatar);
+ return ptr == IntPtr.Zero
+ ? (ovrAvatarHandComponent?)null
+ : (ovrAvatarHandComponent)Marshal.PtrToStructure(ptr, typeof(ovrAvatarHandComponent));
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint =
+ "ovrAvatarPose_GetRightHandComponent")]
+ private static extern IntPtr ovrAvatarPose_GetRightHandComponent_Native(IntPtr avatar);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatarAsset_BeginLoading(UInt64 assetID);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern bool ovrAvatarAsset_BeginLoadingLOD(UInt64 assetId, ovrAvatarAssetLevelOfDetail lod);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern ovrAvatarAssetType ovrAvatarAsset_GetType(IntPtr assetHandle);
+
+ public static ovrAvatarMeshAssetData ovrAvatarAsset_GetMeshData(
+ IntPtr assetPtr)
+ {
+ IntPtr ptr = ovrAvatarAsset_GetMeshData_Native(assetPtr);
+ return (ovrAvatarMeshAssetData)Marshal.PtrToStructure(
+ ptr, typeof(ovrAvatarMeshAssetData));
+ }
+
+ public static ovrAvatarMeshAssetDataV2 ovrAvatarAsset_GetCombinedMeshData(
+ IntPtr assetPtr)
+ {
+ IntPtr ptr = ovrAvatarAsset_GetCombinedMeshData_Native(assetPtr);
+ return (ovrAvatarMeshAssetDataV2)Marshal.PtrToStructure(
+ ptr, typeof(ovrAvatarMeshAssetDataV2));
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint = "ovrAvatarAsset_GetCombinedMeshData")]
+ private static extern IntPtr ovrAvatarAsset_GetCombinedMeshData_Native(IntPtr assetPtr);
+
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint = "ovrAvatarAsset_GetMeshData")]
+ private static extern IntPtr ovrAvatarAsset_GetMeshData_Native(IntPtr assetPtr);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern IntPtr ovrAvatarAsset_GetAvatar(IntPtr assetHandle);
+
+ public static UInt64[] ovrAvatarAsset_GetCombinedMeshIDs(IntPtr assetHandle)
+ {
+ UInt32 count = 0;
+ System.IntPtr countPtr = Marshal.AllocHGlobal(Marshal.SizeOf(count));
+ IntPtr idBuffer = ovrAvatarAsset_GetCombinedMeshIDs_Native(assetHandle, countPtr);
+ count = (UInt32)Marshal.PtrToStructure(countPtr, typeof(UInt32));
+ UInt64[] meshIDs = new UInt64[count];
+
+ for (int i = 0; i < count; i++)
+ {
+ meshIDs[i] = (UInt64)Marshal.ReadInt64(idBuffer, i * Marshal.SizeOf(typeof(UInt64)));
+ }
+
+ return meshIDs;
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint = "ovrAvatarAsset_GetCombinedMeshIDs")]
+ public static extern IntPtr ovrAvatarAsset_GetCombinedMeshIDs_Native(IntPtr assetHandle, IntPtr count);
+
+ public static void ovrAvatar_GetCombinedMeshAlphaData(IntPtr avatar, ref UInt64 textureID, ref Vector4 offset)
+ {
+ System.IntPtr textureIDPtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(UInt64)));
+ System.IntPtr offsetPtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(Vector4)));
+
+ ovrAvatar_GetCombinedMeshAlphaData_Native(avatar, textureIDPtr, offsetPtr);
+
+ textureID = (UInt64)Marshal.PtrToStructure(textureIDPtr, typeof(UInt64));
+ offset = (Vector4)Marshal.PtrToStructure(offsetPtr, typeof(Vector4));
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint = "ovrAvatar_GetCombinedMeshAlphaData")]
+ public static extern IntPtr ovrAvatar_GetCombinedMeshAlphaData_Native(IntPtr avatar, IntPtr textureIDPtr, IntPtr offsetPtr);
+
+ public static ovrAvatarTextureAssetData ovrAvatarAsset_GetTextureData(
+ IntPtr assetPtr)
+ {
+ IntPtr ptr = ovrAvatarAsset_GetTextureData_Native(assetPtr);
+ return (ovrAvatarTextureAssetData)Marshal.PtrToStructure(
+ ptr, typeof(ovrAvatarTextureAssetData));
+ }
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint =
+ "ovrAvatarAsset_GetTextureData")]
+ private static extern IntPtr ovrAvatarAsset_GetTextureData_Native(IntPtr assetPtr);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint =
+ "ovrAvatarAsset_GetMaterialData")]
+ private static extern IntPtr ovrAvatarAsset_GetMaterialData_Native(IntPtr assetPtr);
+ public static ovrAvatarMaterialState ovrAvatarAsset_GetMaterialState(IntPtr assetPtr)
+ {
+ IntPtr ptr = ovrAvatarAsset_GetMaterialData_Native(assetPtr);
+ return (ovrAvatarMaterialState)Marshal.PtrToStructure(ptr, typeof(ovrAvatarMaterialState));
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern ovrAvatarRenderPartType ovrAvatarRenderPart_GetType(IntPtr renderPart);
+
+ public static ovrAvatarRenderPart_SkinnedMeshRender ovrAvatarRenderPart_GetSkinnedMeshRender(IntPtr renderPart)
+ {
+ IntPtr ptr = ovrAvatarRenderPart_GetSkinnedMeshRender_Native(renderPart);
+ return (ovrAvatarRenderPart_SkinnedMeshRender)Marshal.PtrToStructure(
+ ptr, typeof(ovrAvatarRenderPart_SkinnedMeshRender));
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint = "ovrAvatarRenderPart_GetSkinnedMeshRender")]
+ private static extern IntPtr ovrAvatarRenderPart_GetSkinnedMeshRender_Native(IntPtr renderPart);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern ovrAvatarTransform ovrAvatarSkinnedMeshRender_GetTransform(IntPtr renderPart);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern ovrAvatarTransform ovrAvatarSkinnedMeshRenderPBS_GetTransform(IntPtr renderPart);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern ovrAvatarTransform ovrAvatarSkinnedMeshRenderPBSV2_GetTransform(IntPtr renderPart);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern ovrAvatarVisibilityFlags ovrAvatarSkinnedMeshRender_GetVisibilityMask(IntPtr renderPart);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern bool ovrAvatarSkinnedMeshRender_MaterialStateChanged(IntPtr renderPart);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern bool ovrAvatarSkinnedMeshRenderPBSV2_MaterialStateChanged(IntPtr renderPart);
+
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern ovrAvatarVisibilityFlags ovrAvatarSkinnedMeshRenderPBS_GetVisibilityMask(IntPtr renderPart);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern ovrAvatarVisibilityFlags ovrAvatarSkinnedMeshRenderPBSV2_GetVisibilityMask(IntPtr renderPart);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern ovrAvatarMaterialState ovrAvatarSkinnedMeshRender_GetMaterialState(IntPtr renderPart);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern ovrAvatarPBSMaterialState ovrAvatarSkinnedMeshRenderPBSV2_GetPBSMaterialState(IntPtr renderPart);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern UInt64 ovrAvatarSkinnedMeshRender_GetDirtyJoints(IntPtr renderPart);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern UInt64 ovrAvatarSkinnedMeshRenderPBS_GetDirtyJoints(IntPtr renderPart);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern UInt64 ovrAvatarSkinnedMeshRenderPBSV2_GetDirtyJoints(IntPtr renderPart);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern ovrAvatarTransform ovrAvatarSkinnedMeshRender_GetJointTransform(IntPtr renderPart, UInt32 jointIndex);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern ovrAvatarTransform ovrAvatarSkinnedMeshRenderPBS_GetJointTransform(IntPtr renderPart, UInt32 jointIndex);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern ovrAvatarTransform ovrAvatarSkinnedMeshRenderPBSV2_GetJointTransform(IntPtr renderPart, UInt32 jointIndex);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern UInt64 ovrAvatarSkinnedMeshRenderPBS_GetAlbedoTextureAssetID(IntPtr renderPart);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern UInt64 ovrAvatarSkinnedMeshRenderPBS_GetSurfaceTextureAssetID(IntPtr renderPart);
+
+ public static ovrAvatarRenderPart_SkinnedMeshRenderPBS ovrAvatarRenderPart_GetSkinnedMeshRenderPBS(IntPtr renderPart)
+ {
+ IntPtr ptr = ovrAvatarRenderPart_GetSkinnedMeshRenderPBS_Native(renderPart);
+ return (ovrAvatarRenderPart_SkinnedMeshRenderPBS)Marshal.PtrToStructure(
+ ptr, typeof(ovrAvatarRenderPart_SkinnedMeshRenderPBS));
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint = "ovrAvatarRenderPart_GetSkinnedMeshRenderPBS")]
+ private static extern IntPtr ovrAvatarRenderPart_GetSkinnedMeshRenderPBS_Native(IntPtr renderPart);
+
+ public static ovrAvatarRenderPart_SkinnedMeshRenderPBS_V2 ovrAvatarRenderPart_GetSkinnedMeshRenderPBSV2(IntPtr renderPart)
+ {
+ IntPtr ptr = ovrAvatarRenderPart_GetSkinnedMeshRenderPBSV2_Native(renderPart);
+ return (ovrAvatarRenderPart_SkinnedMeshRenderPBS_V2)Marshal.PtrToStructure(
+ ptr, typeof(ovrAvatarRenderPart_SkinnedMeshRenderPBS_V2));
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint = "ovrAvatarRenderPart_GetSkinnedMeshRenderPBSV2")]
+ private static extern IntPtr ovrAvatarRenderPart_GetSkinnedMeshRenderPBSV2_Native(IntPtr renderPart);
+
+ public static ovrAvatarRenderPart_ProjectorRender ovrAvatarRenderPart_GetProjectorRender(IntPtr renderPart)
+ {
+ IntPtr ptr = ovrAvatarRenderPart_GetProjectorRender_Native(renderPart);
+ return (ovrAvatarRenderPart_ProjectorRender)Marshal.PtrToStructure(
+ ptr, typeof(ovrAvatarRenderPart_ProjectorRender));
+ }
+
+ public static ovrAvatarPBSMaterialState[] ovrAvatar_GetBodyPBSMaterialStates(IntPtr renderPart)
+ {
+ System.IntPtr countPtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(UInt32)));
+ IntPtr ptrState = ovrAvatar_GetBodyPBSMaterialStates_Native(renderPart, countPtr);
+ UInt32 count = (UInt32)Marshal.ReadInt32(countPtr);
+
+ ovrAvatarPBSMaterialState[] states = new ovrAvatarPBSMaterialState[count];
+
+ for (int i = 0; i < states.Length; i++)
+ {
+ IntPtr nextItem = new IntPtr(ptrState.ToInt64() + i * Marshal.SizeOf(typeof(ovrAvatarPBSMaterialState)));
+ states[i] = (ovrAvatarPBSMaterialState)Marshal.PtrToStructure(nextItem, typeof(ovrAvatarPBSMaterialState));
+ }
+
+ return states;
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint = "ovrAvatar_GetBodyPBSMaterialStates")]
+ private static extern IntPtr ovrAvatar_GetBodyPBSMaterialStates_Native(IntPtr avatar, IntPtr count);
+
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl, EntryPoint = "ovrAvatarRenderPart_GetProjectorRender")]
+ private static extern IntPtr ovrAvatarRenderPart_GetProjectorRender_Native(IntPtr renderPart);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern UInt32 ovrAvatar_GetReferencedAssetCount(IntPtr avatar);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern UInt64 ovrAvatar_GetReferencedAsset(IntPtr avatar, UInt32 index);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatar_SetLeftHandGesture(IntPtr avatar, ovrAvatarHandGesture gesture);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatar_SetRightHandGesture(IntPtr avatar, ovrAvatarHandGesture gesture);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatar_SetLeftHandCustomGesture(IntPtr avatar, UInt32 jointCount, [In] ovrAvatarTransform[] customJointTransforms);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatar_SetRightHandCustomGesture(IntPtr avatar, UInt32 jointCount, [In] ovrAvatarTransform[] customJointTransforms);
+
+ //Native calls for efficient packet updates
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatar_UpdatePoseFromPacket(IntPtr avatar, IntPtr packet, float secondsFromStart);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatarPacket_BeginRecording(IntPtr avatar);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern IntPtr ovrAvatarPacket_EndRecording(IntPtr avatar);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern UInt32 ovrAvatarPacket_GetSize(IntPtr packet);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern float ovrAvatarPacket_GetDurationSeconds(IntPtr packet);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatarPacket_Free(IntPtr packet);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern bool ovrAvatarPacket_Write(IntPtr packet, UInt32 bufferSize, [Out] byte[] buffer);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern IntPtr ovrAvatarPacket_Read(UInt32 bufferSize, [In] byte[] buffer);
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ private static extern void ovrAvatar_SetInternalForceASTCTextures(bool value);
+
+ // Renaming the outward facing method to remove Internal from name
+ public static void ovrAvatar_SetForceASTCTextures(bool value)
+ {
+ ovrAvatar_SetInternalForceASTCTextures(value);
+ }
+
+ [DllImport(LibFile, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovrAvatarSpecificationRequest_SetFallbackLookAndFeelVersion(IntPtr specificationRequest, ovrAvatarLookAndFeelVersion version);
+ }
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarSDKCAPI.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarSDKCAPI.cs.meta
new file mode 100644
index 0000000..3fbc715
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarSDKCAPI.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 0348026b48363904bb332b53a21c35b2
+timeCreated: 1474928508
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarSDKManager.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarSDKManager.cs
new file mode 100644
index 0000000..0714860
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarSDKManager.cs
@@ -0,0 +1,243 @@
+using UnityEngine;
+using System.Collections;
+using Oculus.Avatar;
+using System;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+
+public delegate void specificationCallback(IntPtr specification);
+public delegate void assetLoadedCallback(OvrAvatarAsset asset);
+public delegate void combinedMeshLoadedCallback(IntPtr asset);
+
+public class OvrAvatarSDKManager : MonoBehaviour
+{
+ private static OvrAvatarSDKManager _instance;
+ private Dictionary> specificationCallbacks;
+ private Dictionary> assetLoadedCallbacks;
+ private Dictionary combinedMeshLoadedCallbacks;
+ private Dictionary assetCache;
+
+ public static OvrAvatarSDKManager Instance
+ {
+ get
+ {
+ if (_instance == null)
+ {
+ _instance = GameObject.FindObjectOfType();
+ if (_instance == null)
+ {
+ GameObject manager = new GameObject("OvrAvatarSDKManager");
+ _instance = manager.AddComponent();
+ _instance.Initialize();
+ }
+ }
+ return _instance;
+ }
+ }
+
+ private void Initialize()
+ {
+#if UNITY_ANDROID && !UNITY_EDITOR
+ string appId = OvrAvatarSettings.GearAppID;
+ if (appId == "")
+ {
+ AvatarLogger.Log("No Gear VR App ID has been provided. Go to Oculus Avatar > Edit Configuration to supply one", OvrAvatarSettings.Instance);
+ appId = "0";
+ }
+
+ CAPI.ovrAvatar_InitializeAndroidUnity(appId);
+#else
+ string appId = OvrAvatarSettings.AppID;
+ if (appId == "")
+ {
+ AvatarLogger.Log("No Oculus Rift App ID has been provided. Go to Oculus Avatar > Edit Configuration to supply one", OvrAvatarSettings.Instance);
+ appId = "0";
+ }
+
+ CAPI.ovrAvatar_Initialize(appId);
+#endif
+ specificationCallbacks = new Dictionary>();
+ assetLoadedCallbacks = new Dictionary>();
+ combinedMeshLoadedCallbacks = new Dictionary();
+ assetCache = new Dictionary();
+ }
+
+ void OnDestroy()
+ {
+ CAPI.ovrAvatar_Shutdown();
+ }
+
+ // Update is called once per frame
+ void Update () {
+ IntPtr message = CAPI.ovrAvatarMessage_Pop();
+ if (message == IntPtr.Zero)
+ {
+ return;
+ }
+
+ ovrAvatarMessageType messageType = CAPI.ovrAvatarMessage_GetType(message);
+ switch (messageType)
+ {
+ case ovrAvatarMessageType.AssetLoaded:
+ {
+ ovrAvatarMessage_AssetLoaded assetMessage = CAPI.ovrAvatarMessage_GetAssetLoaded(message);
+ IntPtr asset = assetMessage.asset;
+ UInt64 assetID = assetMessage.assetID;
+ ovrAvatarAssetType assetType = CAPI.ovrAvatarAsset_GetType(asset);
+ OvrAvatarAsset assetData;
+ IntPtr avatarOwner = IntPtr.Zero;
+
+ switch (assetType)
+ {
+ case ovrAvatarAssetType.Mesh:
+ assetData = new OvrAvatarAssetMesh(assetID, asset, ovrAvatarAssetType.Mesh);
+ break;
+ case ovrAvatarAssetType.Texture:
+ assetData = new OvrAvatarAssetTexture(assetID, asset);
+ break;
+ case ovrAvatarAssetType.Material:
+ assetData = new OvrAvatarAssetMaterial(assetID, asset);
+ break;
+ case ovrAvatarAssetType.CombinedMesh:
+ avatarOwner = CAPI.ovrAvatarAsset_GetAvatar(asset);
+ assetData = new OvrAvatarAssetMesh(assetID, asset, ovrAvatarAssetType.CombinedMesh);
+ break;
+ default:
+ throw new NotImplementedException(string.Format("Unsupported asset type format {0}", assetType.ToString()));
+ }
+
+ HashSet callbackSet;
+ if (assetType == ovrAvatarAssetType.CombinedMesh)
+ {
+ if (!assetCache.ContainsKey(assetID))
+ {
+ assetCache.Add(assetID, assetData);
+ }
+
+ combinedMeshLoadedCallback callback;
+ if (combinedMeshLoadedCallbacks.TryGetValue(avatarOwner, out callback))
+ {
+ callback(asset);
+ combinedMeshLoadedCallbacks.Remove(avatarOwner);
+ }
+ else
+ {
+ AvatarLogger.LogWarning("Loaded a combined mesh with no owner: " + assetMessage.assetID);
+ }
+ }
+ else
+ {
+ if (assetLoadedCallbacks.TryGetValue(assetMessage.assetID, out callbackSet))
+ {
+ assetCache.Add(assetID, assetData);
+
+ foreach (var callback in callbackSet)
+ {
+ callback(assetData);
+ }
+
+ assetLoadedCallbacks.Remove(assetMessage.assetID);
+ }
+ }
+
+ break;
+ }
+ case ovrAvatarMessageType.AvatarSpecification:
+ {
+ ovrAvatarMessage_AvatarSpecification spec = CAPI.ovrAvatarMessage_GetAvatarSpecification(message);
+ HashSet callbackSet;
+ if (specificationCallbacks.TryGetValue(spec.oculusUserID, out callbackSet))
+ {
+ foreach (var callback in callbackSet)
+ {
+ callback(spec.avatarSpec);
+ }
+
+ specificationCallbacks.Remove(spec.oculusUserID);
+ }
+ else
+ {
+ AvatarLogger.LogWarning("Error, got an avatar specification callback from a user id we don't have a record for: " + spec.oculusUserID);
+ }
+ break;
+ }
+ default:
+ throw new NotImplementedException("Unhandled ovrAvatarMessageType: " + messageType);
+ }
+ CAPI.ovrAvatarMessage_Free(message);
+ }
+
+ public void RequestAvatarSpecification(
+ UInt64 userId,
+ specificationCallback callback,
+ bool useCombinedMesh,
+ ovrAvatarAssetLevelOfDetail lod,
+ bool forceMobileTextureFormat)
+ {
+ CAPI.ovrAvatar_SetForceASTCTextures(forceMobileTextureFormat);
+
+ HashSet callbackSet;
+ if (!specificationCallbacks.TryGetValue(userId, out callbackSet))
+ {
+ callbackSet = new HashSet();
+ specificationCallbacks.Add(userId, callbackSet);
+
+ IntPtr specRequest = CAPI.ovrAvatarSpecificationRequest_Create(userId);
+ CAPI.ovrAvatarSpecificationRequest_SetLookAndFeelVersion(specRequest, ovrAvatarLookAndFeelVersion.Two);
+ CAPI.ovrAvatarSpecificationRequest_SetFallbackLookAndFeelVersion(specRequest, ovrAvatarLookAndFeelVersion.One);
+ CAPI.ovrAvatarSpecificationRequest_SetLevelOfDetail(specRequest, lod);
+ CAPI.ovrAvatarSpecificationRequest_SetCombineMeshes(specRequest, useCombinedMesh);
+ CAPI.ovrAvatar_RequestAvatarSpecificationFromSpecRequest(specRequest);
+ CAPI.ovrAvatarSpecificationRequest_Destroy(specRequest);
+ }
+
+ callbackSet.Add(callback);
+ }
+
+ public void BeginLoadingAsset(
+ UInt64 assetId,
+ ovrAvatarAssetLevelOfDetail lod,
+ assetLoadedCallback callback)
+ {
+ HashSet callbackSet;
+ if (!assetLoadedCallbacks.TryGetValue(assetId, out callbackSet))
+ {
+ callbackSet = new HashSet();
+ assetLoadedCallbacks.Add(assetId, callbackSet);
+ }
+
+ AvatarLogger.Log("Loading Asset ID: " + assetId);
+
+ CAPI.ovrAvatarAsset_BeginLoadingLOD(assetId, lod);
+ callbackSet.Add(callback);
+ }
+
+ public void RegisterCombinedMeshCallback(
+ IntPtr sdkAvatar,
+ combinedMeshLoadedCallback callback)
+ {
+ combinedMeshLoadedCallback currentCallback;
+ if (!combinedMeshLoadedCallbacks.TryGetValue(sdkAvatar, out currentCallback))
+ {
+ combinedMeshLoadedCallbacks.Add(sdkAvatar, callback);
+ }
+ else
+ {
+ throw new Exception("Adding second combind mesh callback for same avatar");
+ }
+ }
+
+
+ public OvrAvatarAsset GetAsset(UInt64 assetId)
+ {
+ OvrAvatarAsset asset;
+ if (assetCache.TryGetValue(assetId, out asset))
+ {
+ return asset;
+ }
+ else
+ {
+ return null;
+ }
+ }
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarSDKManager.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarSDKManager.cs.meta
new file mode 100644
index 0000000..86d19ca
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarSDKManager.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 2ba08ec2733a3a54fbc9490f0f4ab2f0
+timeCreated: 1475011862
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarSettings.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarSettings.cs
new file mode 100644
index 0000000..e0f1dad
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarSettings.cs
@@ -0,0 +1,65 @@
+using UnityEngine;
+using System.Collections;
+
+#if UNITY_EDITOR
+ [UnityEditor.InitializeOnLoad]
+#endif
+public sealed class OvrAvatarSettings : ScriptableObject {
+ public static string AppID
+ {
+ get { return Instance.ovrAppID; }
+ set { Instance.ovrAppID = value; }
+ }
+
+ public static string GearAppID
+ {
+ get { return Instance.ovrGearAppID; }
+ set { Instance.ovrGearAppID = value; }
+ }
+
+ private static OvrAvatarSettings instance;
+ public static OvrAvatarSettings Instance
+ {
+ get
+ {
+ if (instance == null)
+ {
+ instance = Resources.Load("OvrAvatarSettings");
+
+ // This can happen if the developer never input their App Id into the Unity Editor
+ // Use a dummy object with defaults for the getters so we don't have a null pointer exception
+ if (instance == null)
+ {
+ instance = ScriptableObject.CreateInstance();
+
+#if UNITY_EDITOR
+ // Only in the editor should we save it to disk
+ string properPath = System.IO.Path.Combine(UnityEngine.Application.dataPath, "Resources");
+ if (!System.IO.Directory.Exists(properPath))
+ {
+ UnityEditor.AssetDatabase.CreateFolder("Assets", "Resources");
+ }
+
+ string fullPath = System.IO.Path.Combine(
+ System.IO.Path.Combine("Assets", "Resources"),
+ "OvrAvatarSettings.asset"
+ );
+ UnityEditor.AssetDatabase.CreateAsset(instance, fullPath);
+#endif
+ }
+ }
+ return instance;
+ }
+
+ set
+ {
+ instance = value;
+ }
+ }
+
+ [SerializeField]
+ private string ovrAppID = "";
+
+ [SerializeField]
+ private string ovrGearAppID = "";
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarSettings.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarSettings.cs.meta
new file mode 100644
index 0000000..290ae26
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarSettings.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 70c2f484f132c044097f03d65cac3b24
+timeCreated: 1478024706
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarSettingsEditor.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarSettingsEditor.cs
new file mode 100644
index 0000000..7720207
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarSettingsEditor.cs
@@ -0,0 +1,44 @@
+#if UNITY_EDITOR
+using UnityEngine;
+using System.Collections;
+using UnityEditor;
+
+[CustomEditor(typeof(OvrAvatarSettings))]
+public class OvrAvatarSettingsEditor : Editor {
+ GUIContent appIDLabel = new GUIContent("Oculus Rift App Id [?]",
+ "This AppID will be used for OvrAvatar registration.");
+
+ GUIContent gearAppIDLabel = new GUIContent("Gear VR App Id [?]",
+ "This AppID will be used for OvrAvatar registration when building to the Android target.");
+
+ [UnityEditor.MenuItem("Oculus Avatars/Edit Configuration")]
+ public static void Edit()
+ {
+ var settings = OvrAvatarSettings.Instance;
+ UnityEditor.Selection.activeObject = settings;
+ }
+
+ private static string MakeTextBox(GUIContent label, string variable) {
+ EditorGUILayout.BeginHorizontal();
+ EditorGUILayout.LabelField(label);
+ GUI.changed = false;
+ var result = EditorGUILayout.TextField(variable);
+ if (GUI.changed)
+ {
+ EditorUtility.SetDirty(OvrAvatarSettings.Instance);
+ GUI.changed = false;
+ }
+ EditorGUILayout.EndHorizontal();
+ return result;
+ }
+ public override void OnInspectorGUI()
+ {
+ EditorGUILayout.BeginVertical();
+ OvrAvatarSettings.AppID =
+ OvrAvatarSettingsEditor.MakeTextBox(appIDLabel, OvrAvatarSettings.AppID);
+ OvrAvatarSettings.GearAppID =
+ OvrAvatarSettingsEditor.MakeTextBox(gearAppIDLabel, OvrAvatarSettings.GearAppID);
+ EditorGUILayout.EndVertical();
+ }
+}
+#endif
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarSettingsEditor.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarSettingsEditor.cs.meta
new file mode 100644
index 0000000..e4f9404
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarSettingsEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 1511f2aaa4ab15e4b8a0ac1a805a402b
+timeCreated: 1478024800
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderComponent.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderComponent.cs
new file mode 100644
index 0000000..409953e
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderComponent.cs
@@ -0,0 +1,50 @@
+using UnityEngine;
+using System.Collections;
+using System;
+using Oculus.Avatar;
+
+public class OvrAvatarSkinnedMeshRenderComponent : OvrAvatarRenderComponent
+{
+ Shader surface;
+ Shader surfaceSelfOccluding;
+ bool previouslyActive = false;
+
+ internal void Initialize(ovrAvatarRenderPart_SkinnedMeshRender skinnedMeshRender, Shader surface, Shader surfaceSelfOccluding, int thirdPersonLayer, int firstPersonLayer, int sortOrder)
+ {
+ this.surfaceSelfOccluding = surfaceSelfOccluding != null ? surfaceSelfOccluding : Shader.Find("OvrAvatar/AvatarSurfaceShaderSelfOccluding");
+ this.surface = surface != null ? surface : Shader.Find("OvrAvatar/AvatarSurfaceShader");
+ this.mesh = CreateSkinnedMesh(skinnedMeshRender.meshAssetID, skinnedMeshRender.visibilityMask, thirdPersonLayer, firstPersonLayer, sortOrder);
+ bones = mesh.bones;
+ UpdateMeshMaterial(skinnedMeshRender.visibilityMask, mesh);
+ }
+
+ public void UpdateSkinnedMeshRender(OvrAvatarComponent component, OvrAvatar avatar, IntPtr renderPart)
+ {
+ ovrAvatarVisibilityFlags visibilityMask = CAPI.ovrAvatarSkinnedMeshRender_GetVisibilityMask(renderPart);
+ ovrAvatarTransform localTransform = CAPI.ovrAvatarSkinnedMeshRender_GetTransform(renderPart);
+ UpdateSkinnedMesh(avatar, bones, localTransform, visibilityMask, renderPart);
+
+ UpdateMeshMaterial(visibilityMask, mesh);
+ bool isActive = this.gameObject.activeSelf;
+
+ if( mesh != null )
+ {
+ bool changedMaterial = CAPI.ovrAvatarSkinnedMeshRender_MaterialStateChanged(renderPart);
+ if (changedMaterial || (!previouslyActive && isActive))
+ {
+ ovrAvatarMaterialState materialState = CAPI.ovrAvatarSkinnedMeshRender_GetMaterialState(renderPart);
+ component.UpdateAvatarMaterial(mesh.sharedMaterial, materialState);
+ }
+ }
+ previouslyActive = isActive;
+ }
+
+ private void UpdateMeshMaterial(ovrAvatarVisibilityFlags visibilityMask, SkinnedMeshRenderer rootMesh)
+ {
+ Shader shader = (visibilityMask & ovrAvatarVisibilityFlags.SelfOccluding) != 0 ? surfaceSelfOccluding : surface;
+ if (rootMesh.sharedMaterial == null || rootMesh.sharedMaterial.shader != shader)
+ {
+ rootMesh.sharedMaterial = CreateAvatarMaterial(gameObject.name + "_material", shader);
+ }
+ }
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderComponent.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderComponent.cs.meta
new file mode 100644
index 0000000..6c85ed5
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderComponent.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 4efdf8bc42b8b8843aff4ca38233f362
+timeCreated: 1479156282
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderPBSComponent.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderPBSComponent.cs
new file mode 100644
index 0000000..811d028
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderPBSComponent.cs
@@ -0,0 +1,30 @@
+using UnityEngine;
+using System.Collections;
+using System;
+using Oculus.Avatar;
+
+public class OvrAvatarSkinnedMeshRenderPBSComponent : OvrAvatarRenderComponent {
+
+ internal void Initialize(ovrAvatarRenderPart_SkinnedMeshRenderPBS skinnedMeshRenderPBS, Shader shader, int thirdPersonLayer, int firstPersonLayer, int sortOrder)
+ {
+ if (shader == null)
+ {
+ shader = Shader.Find("OvrAvatar/AvatarSurfaceShaderPBS");
+ }
+ mesh = CreateSkinnedMesh(skinnedMeshRenderPBS.meshAssetID, skinnedMeshRenderPBS.visibilityMask, thirdPersonLayer, firstPersonLayer, sortOrder);
+ mesh.sharedMaterial = CreateAvatarMaterial(gameObject.name + "_material", shader);
+ bones = mesh.bones;
+ }
+
+ internal void UpdateSkinnedMeshRenderPBS(OvrAvatar avatar, IntPtr renderPart, Material mat)
+ {
+ ovrAvatarVisibilityFlags visibilityMask = CAPI.ovrAvatarSkinnedMeshRenderPBS_GetVisibilityMask(renderPart);
+ ovrAvatarTransform localTransform = CAPI.ovrAvatarSkinnedMeshRenderPBS_GetTransform(renderPart);
+ UpdateSkinnedMesh(avatar, bones, localTransform, visibilityMask, renderPart);
+
+ UInt64 albedoTextureID = CAPI.ovrAvatarSkinnedMeshRenderPBS_GetAlbedoTextureAssetID(renderPart);
+ UInt64 surfaceTextureID = CAPI.ovrAvatarSkinnedMeshRenderPBS_GetSurfaceTextureAssetID(renderPart);
+ mat.SetTexture("_Albedo", OvrAvatarComponent.GetLoadedTexture(albedoTextureID));
+ mat.SetTexture("_Surface", OvrAvatarComponent.GetLoadedTexture(surfaceTextureID));
+ }
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderPBSComponent.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderPBSComponent.cs.meta
new file mode 100644
index 0000000..b5e75ef
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderPBSComponent.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 69cc01a6441317c4c8a6e24d979cc1b0
+timeCreated: 1479158964
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderPBSV2Component.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderPBSV2Component.cs
new file mode 100644
index 0000000..91f50fa
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderPBSV2Component.cs
@@ -0,0 +1,189 @@
+using UnityEngine;
+using System.Collections;
+using System;
+using System.Security.Policy;
+using Oculus.Avatar;
+
+public class OvrAvatarSkinnedMeshPBSV2RenderComponent : OvrAvatarRenderComponent
+{
+ public OvrAvatarMaterialManager AvatarMaterialManager;
+ bool PreviouslyActive = false;
+ bool IsCombinedMaterial = false;
+
+ internal void Initialize(
+ IntPtr renderPart,
+ ovrAvatarRenderPart_SkinnedMeshRenderPBS_V2 skinnedMeshRender,
+ OvrAvatarMaterialManager materialManager,
+ int thirdPersonLayer,
+ int firstPersonLayer,
+ int sortOrder,
+ bool isCombinedMaterial,
+ ovrAvatarAssetLevelOfDetail lod)
+ {
+ AvatarMaterialManager = materialManager;
+ IsCombinedMaterial = isCombinedMaterial;
+
+ mesh = CreateSkinnedMesh(
+ skinnedMeshRender.meshAssetID,
+ skinnedMeshRender.visibilityMask,
+ thirdPersonLayer,
+ firstPersonLayer,
+ sortOrder);
+
+#if UNITY_ANDROID
+ var singleComponentShader = "OvrAvatar/Avatar_Mobile_SingleComponent";
+#else
+ var singleComponentShader = "OvrAvatar/Avatar_PC_SingleComponent";
+#endif
+
+ var shader = IsCombinedMaterial
+ ? Shader.Find("OvrAvatar/Avatar_Mobile_CombinedMesh")
+ : Shader.Find(singleComponentShader);
+
+ AvatarLogger.Log("Shader is: " + shader.name);
+
+ mesh.sharedMaterial = CreateAvatarMaterial(gameObject.name + "_material", shader);
+ mesh.sharedMaterial.renderQueue = OvrAvatarMaterialManager.RENDER_QUEUE;
+
+ bones = mesh.bones;
+
+ if (IsCombinedMaterial)
+ {
+ AvatarMaterialManager.SetRenderer(mesh);
+ InitializeCombinedMaterial(renderPart, (int)lod - 1);
+ AvatarMaterialManager.OnCombinedMeshReady();
+ }
+ }
+
+ public void UpdateSkinnedMeshRender(
+ OvrAvatarComponent component,
+ OvrAvatar avatar,
+ IntPtr renderPart)
+ {
+ ovrAvatarVisibilityFlags visibilityMask
+ = CAPI.ovrAvatarSkinnedMeshRenderPBSV2_GetVisibilityMask(renderPart);
+
+ ovrAvatarTransform localTransform
+ = CAPI.ovrAvatarSkinnedMeshRenderPBSV2_GetTransform(renderPart);
+
+ UpdateSkinnedMesh(avatar, bones, localTransform, visibilityMask, renderPart);
+
+ bool isActive = gameObject.activeSelf;
+
+ if (mesh != null && !PreviouslyActive && isActive)
+ {
+ if (!IsCombinedMaterial)
+ {
+ InitializeSingleComponentMaterial(renderPart, (int)avatar.LevelOfDetail - 1);
+ }
+ }
+
+ PreviouslyActive = isActive;
+ }
+
+ private void InitializeSingleComponentMaterial(IntPtr renderPart, int lodIndex)
+ {
+ ovrAvatarPBSMaterialState materialState =
+ CAPI.ovrAvatarSkinnedMeshRenderPBSV2_GetPBSMaterialState(renderPart);
+
+ int componentType = (int)OvrAvatarMaterialManager.GetComponentType(gameObject.name);
+
+ var defaultProperties = AvatarMaterialManager.DefaultAvatarConfig.ComponentMaterialProperties;
+
+ var diffuseTexture = OvrAvatarComponent.GetLoadedTexture(materialState.albedoTextureID);
+ var normalTexture = OvrAvatarComponent.GetLoadedTexture(materialState.normalTextureID);
+ var metallicTexture = OvrAvatarComponent.GetLoadedTexture(materialState.metallicnessTextureID);
+
+ if (diffuseTexture == null)
+ {
+ diffuseTexture = AvatarMaterialManager.DiffuseFallbacks[lodIndex];
+ }
+
+ if (normalTexture == null)
+ {
+ normalTexture = AvatarMaterialManager.NormalFallbacks[lodIndex];
+ }
+
+ if (metallicTexture == null)
+ {
+ metallicTexture = AvatarMaterialManager.DiffuseFallbacks[lodIndex];
+ }
+
+ mesh.sharedMaterial.SetTexture(OvrAvatarMaterialManager.AVATAR_SHADER_MAINTEX, diffuseTexture);
+ mesh.sharedMaterial.SetTexture(OvrAvatarMaterialManager.AVATAR_SHADER_NORMALMAP, normalTexture);
+ mesh.sharedMaterial.SetTexture(OvrAvatarMaterialManager.AVATAR_SHADER_ROUGHNESSMAP, metallicTexture);
+
+ mesh.sharedMaterial.SetVector(OvrAvatarMaterialManager.AVATAR_SHADER_COLOR,
+ materialState.albedoMultiplier);
+
+ mesh.sharedMaterial.SetFloat(OvrAvatarMaterialManager.AVATAR_SHADER_DIFFUSEINTENSITY,
+ defaultProperties[componentType].DiffuseIntensity);
+
+ mesh.sharedMaterial.SetFloat(OvrAvatarMaterialManager.AVATAR_SHADER_RIMINTENSITY,
+ defaultProperties[componentType].RimIntensity);
+
+ mesh.sharedMaterial.SetFloat(OvrAvatarMaterialManager.AVATAR_SHADER_BACKLIGHTINTENSITY,
+ defaultProperties[componentType].BacklightIntensity);
+
+ mesh.sharedMaterial.SetFloat(OvrAvatarMaterialManager.AVATAR_SHADER_REFLECTIONINTENSITY,
+ defaultProperties[componentType].ReflectionIntensity);
+
+ mesh.GetClosestReflectionProbes(AvatarMaterialManager.ReflectionProbes);
+ if (AvatarMaterialManager.ReflectionProbes != null &&
+ AvatarMaterialManager.ReflectionProbes.Count > 0)
+ {
+ mesh.sharedMaterial.SetTexture(OvrAvatarMaterialManager.AVATAR_SHADER_CUBEMAP,
+ AvatarMaterialManager.ReflectionProbes[0].probe.texture);
+ }
+
+#if UNITY_EDITOR
+ mesh.sharedMaterial.EnableKeyword("FIX_NORMAL_ON");
+#endif
+ mesh.sharedMaterial.EnableKeyword("PBR_LIGHTING_ON");
+ }
+
+ private void InitializeCombinedMaterial(IntPtr renderPart, int lodIndex)
+ {
+ ovrAvatarPBSMaterialState[] materialStates = CAPI.ovrAvatar_GetBodyPBSMaterialStates(renderPart);
+
+ if (materialStates.Length == (int)ovrAvatarBodyPartType.Count)
+ {
+ AvatarMaterialManager.CreateTextureArrays();
+
+ AvatarMaterialManager.LocalAvatarConfig = AvatarMaterialManager.DefaultAvatarConfig;
+ var localProperties = AvatarMaterialManager.LocalAvatarConfig.ComponentMaterialProperties;
+
+ AvatarLogger.Log("InitializeCombinedMaterial - Loading Material States");
+
+ for (int i = 0; i < materialStates.Length; i++)
+ {
+ localProperties[i].TypeIndex = (ovrAvatarBodyPartType)i;
+ localProperties[i].Color = materialStates[i].albedoMultiplier;
+
+ var diffuse = OvrAvatarComponent.GetLoadedTexture(materialStates[i].albedoTextureID);
+ var normal = OvrAvatarComponent.GetLoadedTexture(materialStates[i].normalTextureID);
+ var roughness = OvrAvatarComponent.GetLoadedTexture(materialStates[i].metallicnessTextureID);
+
+ localProperties[i].Textures[(int)OvrAvatarMaterialManager.TextureType.DiffuseTextures]
+ = diffuse == null ? AvatarMaterialManager.DiffuseFallbacks[lodIndex] : diffuse;
+
+ localProperties[i].Textures[(int)OvrAvatarMaterialManager.TextureType.NormalMaps]
+ = normal == null ? AvatarMaterialManager.NormalFallbacks[lodIndex] : normal;
+
+ localProperties[i].Textures[(int)OvrAvatarMaterialManager.TextureType.RoughnessMaps]
+ = roughness == null ? AvatarMaterialManager.DiffuseFallbacks[lodIndex] : roughness;
+
+ AvatarLogger.Log(localProperties[i].TypeIndex.ToString());
+ AvatarLogger.Log(AvatarLogger.Tab + "Diffuse: " + materialStates[i].albedoTextureID);
+ AvatarLogger.Log(AvatarLogger.Tab + "Normal: " + materialStates[i].normalTextureID);
+ AvatarLogger.Log(AvatarLogger.Tab + "Metallic: " + materialStates[i].metallicnessTextureID);
+ }
+
+ AvatarMaterialManager.ValidateTextures();
+ }
+
+#if UNITY_EDITOR
+ mesh.sharedMaterial.EnableKeyword("FIX_NORMAL_ON");
+#endif
+ }
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderPBSV2Component.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderPBSV2Component.cs.meta
new file mode 100644
index 0000000..100b735
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderPBSV2Component.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c45906825d398024fbe09e47cc72de24
+timeCreated: 1511398456
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarTextureCopyManager.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarTextureCopyManager.cs
new file mode 100644
index 0000000..f7832db
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarTextureCopyManager.cs
@@ -0,0 +1,130 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class OvrAvatarTextureCopyManager : MonoBehaviour
+{
+ private const int TEXTURES_TO_COPY_QUEUE_CAPACITY = 256;
+
+ struct CopyTextureParams
+ {
+ public Texture Src;
+ public Texture Dst;
+ public int Mip;
+ public int SrcSize;
+ public int DstElement;
+
+ public CopyTextureParams(
+ Texture src,
+ Texture dst,
+ int mip,
+ int srcSize,
+ int dstElement)
+ {
+ Src = src;
+ Dst = dst;
+ Mip = mip;
+ SrcSize = srcSize;
+ DstElement = dstElement;
+ }
+ }
+
+ private Queue texturesToCopy;
+
+ public OvrAvatarTextureCopyManager()
+ {
+ texturesToCopy = new Queue(TEXTURES_TO_COPY_QUEUE_CAPACITY);
+ }
+
+ public void Update()
+ {
+ if (texturesToCopy.Count == 0)
+ {
+ return;
+ }
+
+ CopyTextureParams copyTextureParams;
+
+ lock (texturesToCopy)
+ {
+ copyTextureParams = texturesToCopy.Dequeue();
+ }
+
+ StartCoroutine(CopyTextureCoroutine(copyTextureParams));
+ }
+
+ public int GetTextureCount()
+ {
+ return texturesToCopy.Count;
+ }
+
+ public void CopyTexture(
+ Texture src,
+ Texture dst,
+ int mipLevel,
+ int mipSize,
+ int dstElement,
+ bool useQueue = true)
+ {
+ bool queued = false;
+ var copyTextureParams = new CopyTextureParams(src, dst, mipLevel, mipSize, dstElement);
+
+ if (useQueue)
+ {
+ lock (texturesToCopy)
+ {
+ if (texturesToCopy.Count < TEXTURES_TO_COPY_QUEUE_CAPACITY)
+ {
+ texturesToCopy.Enqueue(copyTextureParams);
+ queued = true;
+ }
+ }
+ }
+ else
+ {
+ CopyTexture(copyTextureParams);
+ }
+
+ if (!queued)
+ {
+ CopyTexture(copyTextureParams);
+ }
+ }
+
+ IEnumerator CopyTextureCoroutine(CopyTextureParams copyTextureParams)
+ {
+ // Wait until frame rendering is done
+ yield return new WaitForEndOfFrame();
+
+ Graphics.CopyTexture(
+ copyTextureParams.Src,
+ 0,
+ copyTextureParams.Mip,
+ 0,
+ 0,
+ copyTextureParams.SrcSize,
+ copyTextureParams.SrcSize,
+ copyTextureParams.Dst,
+ copyTextureParams.DstElement,
+ copyTextureParams.Mip,
+ 0,
+ 0);
+ }
+
+ private void CopyTexture(CopyTextureParams copyTextureParams)
+ {
+ Graphics.CopyTexture(
+ copyTextureParams.Src,
+ 0,
+ copyTextureParams.Mip,
+ 0,
+ 0,
+ copyTextureParams.SrcSize,
+ copyTextureParams.SrcSize,
+ copyTextureParams.Dst,
+ copyTextureParams.DstElement,
+ copyTextureParams.Mip,
+ 0,
+ 0);
+ }
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarTextureCopyManager.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarTextureCopyManager.cs.meta
new file mode 100644
index 0000000..cc5d211
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarTextureCopyManager.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: bb5b00817cd46d645ac8b607693c37ce
+timeCreated: 1519680044
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarTouchController.cs b/Assets/Oculus/Avatar/Scripts/OvrAvatarTouchController.cs
new file mode 100644
index 0000000..18cfac4
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarTouchController.cs
@@ -0,0 +1,7 @@
+using UnityEngine;
+using System.Collections;
+using System.Collections.Generic;
+
+public class OvrAvatarTouchController : MonoBehaviour
+{
+}
diff --git a/Assets/Oculus/Avatar/Scripts/OvrAvatarTouchController.cs.meta b/Assets/Oculus/Avatar/Scripts/OvrAvatarTouchController.cs.meta
new file mode 100644
index 0000000..7580afd
--- /dev/null
+++ b/Assets/Oculus/Avatar/Scripts/OvrAvatarTouchController.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 77e19ec58d4a9e844970103e5bd8946a
+timeCreated: 1464050556
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync.meta b/Assets/Oculus/LipSync.meta
new file mode 100644
index 0000000..637f2e8
--- /dev/null
+++ b/Assets/Oculus/LipSync.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 4545866523ed22046a2cbba3990c879a
+folderAsset: yes
+timeCreated: 1538788975
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Audio.meta b/Assets/Oculus/LipSync/Audio.meta
new file mode 100644
index 0000000..641b478
--- /dev/null
+++ b/Assets/Oculus/LipSync/Audio.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 76b873b07f695cb4cb6515ecf670c814
+folderAsset: yes
+timeCreated: 1441295107
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Audio/vox_lp_01.wav b/Assets/Oculus/LipSync/Audio/vox_lp_01.wav
new file mode 100644
index 0000000..b3fb3b0
Binary files /dev/null and b/Assets/Oculus/LipSync/Audio/vox_lp_01.wav differ
diff --git a/Assets/Oculus/LipSync/Audio/vox_lp_01.wav.meta b/Assets/Oculus/LipSync/Audio/vox_lp_01.wav.meta
new file mode 100644
index 0000000..52b10e8
--- /dev/null
+++ b/Assets/Oculus/LipSync/Audio/vox_lp_01.wav.meta
@@ -0,0 +1,24 @@
+fileFormatVersion: 2
+guid: e21cea670b0f32c428ee862e590a7108
+timeCreated: 1528844468
+licenseType: Store
+AudioImporter:
+ externalObjects: {}
+ serializedVersion: 6
+ defaultSettings:
+ loadType: 0
+ sampleRateSetting: 0
+ sampleRateOverride: 44100
+ compressionFormat: 1
+ quality: 1
+ conversionMode: 0
+ platformSettingOverrides: {}
+ forceToMono: 0
+ normalize: 1
+ preloadAudioData: 1
+ loadInBackground: 0
+ ambisonic: 0
+ 3D: 1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Audio/vox_lp_01_lipSync.asset b/Assets/Oculus/LipSync/Audio/vox_lp_01_lipSync.asset
new file mode 100644
index 0000000..3007dbd
--- /dev/null
+++ b/Assets/Oculus/LipSync/Audio/vox_lp_01_lipSync.asset
@@ -0,0 +1,32885 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 354250b5dc6a14f49b541724e9dd3c37, type: 3}
+ m_Name: vox_lp_01_lipSync
+ m_EditorClassIdentifier:
+ entries:
+ - frameNumber: 1
+ frameDelay: 0
+ Visemes:
+ - 0.29095888
+ - 0.007797253
+ - 0.0000026664559
+ - 0.0000030512101
+ - 0.000013580944
+ - 0.000011396746
+ - 0.0000003585638
+ - 0.0000025696186
+ - 0.00020513292
+ - 0.000001864018
+ - 0.00071335665
+ - 0.000010255874
+ - 0.00001123165
+ - 0.00025371587
+ - 0.000014692829
+ laughterScore: 0
+ - frameNumber: 2
+ frameDelay: 0
+ Visemes:
+ - 0.4900638
+ - 0.008471628
+ - 0.000019258236
+ - 0.00022594455
+ - 0.00029157387
+ - 0.00062914094
+ - 0.000067432906
+ - 0.0000421952
+ - 0.0018280431
+ - 0.00013564507
+ - 0.0021883817
+ - 0.00037771522
+ - 0.0008936664
+ - 0.0017923792
+ - 0.0029732396
+ laughterScore: 0
+ - frameNumber: 3
+ frameDelay: 0
+ Visemes:
+ - 0.41823584
+ - 0.01607617
+ - 0.00017738098
+ - 0.0023923854
+ - 0.0011606562
+ - 0.0043956907
+ - 0.00015338078
+ - 0.00013736938
+ - 0.05067691
+ - 0.0011221502
+ - 0.0055520358
+ - 0.0007759017
+ - 0.002725977
+ - 0.024702812
+ - 0.1287154
+ laughterScore: 0
+ - frameNumber: 4
+ frameDelay: 0
+ Visemes:
+ - 0.3132795
+ - 0.017024975
+ - 0.0003675248
+ - 0.002554094
+ - 0.0010613507
+ - 0.003418062
+ - 0.00012564294
+ - 0.00020002484
+ - 0.2198317
+ - 0.0013566408
+ - 0.0068778344
+ - 0.0013028826
+ - 0.002994224
+ - 0.02021398
+ - 0.16929159
+ laughterScore: 0
+ - frameNumber: 5
+ frameDelay: 0
+ Visemes:
+ - 0.22866023
+ - 0.012083319
+ - 0.00028960372
+ - 0.0021516841
+ - 0.0009821
+ - 0.0027167478
+ - 0.000088631874
+ - 0.00014515647
+ - 0.3042245
+ - 0.0018253985
+ - 0.06950627
+ - 0.05328719
+ - 0.00227645
+ - 0.015881874
+ - 0.13781092
+ laughterScore: 0
+ - frameNumber: 6
+ frameDelay: 0
+ Visemes:
+ - 0.16920874
+ - 0.008569902
+ - 0.00027018352
+ - 0.001693187
+ - 0.0015247766
+ - 0.0022373288
+ - 0.00006366265
+ - 0.000106102605
+ - 0.24074723
+ - 0.0017603582
+ - 0.12175746
+ - 0.21867393
+ - 0.0022998843
+ - 0.014944174
+ - 0.09849418
+ laughterScore: 0
+ - frameNumber: 7
+ frameDelay: 0
+ Visemes:
+ - 0.122680694
+ - 0.00618863
+ - 0.00023025266
+ - 0.0012550834
+ - 0.0062260665
+ - 0.0016238329
+ - 0.00004672046
+ - 0.00007909582
+ - 0.19202802
+ - 0.0018091485
+ - 0.09883182
+ - 0.39027244
+ - 0.003931258
+ - 0.022353567
+ - 0.070089124
+ laughterScore: 0
+ - frameNumber: 8
+ frameDelay: 0
+ Visemes:
+ - 0.09339775
+ - 0.0045703817
+ - 0.00052303827
+ - 0.0011854353
+ - 0.017749006
+ - 0.0015471043
+ - 0.000048507536
+ - 0.000108845794
+ - 0.31285137
+ - 0.0015566917
+ - 0.0987629
+ - 0.31041825
+ - 0.0036539412
+ - 0.045291655
+ - 0.050687164
+ laughterScore: 0
+ - frameNumber: 9
+ frameDelay: 0
+ Visemes:
+ - 0.07263108
+ - 0.0033625867
+ - 0.00085465884
+ - 0.0010469172
+ - 0.019006904
+ - 0.0040068273
+ - 0.00049501576
+ - 0.0025440108
+ - 0.40699226
+ - 0.0012742112
+ - 0.0936183
+ - 0.22449653
+ - 0.0031192051
+ - 0.08974816
+ - 0.03644975
+ laughterScore: 0
+ - frameNumber: 10
+ frameDelay: 0
+ Visemes:
+ - 0.055824995
+ - 0.0026895618
+ - 0.0016258797
+ - 0.0072685177
+ - 0.043890852
+ - 0.21458644
+ - 0.002285623
+ - 0.003479659
+ - 0.31616464
+ - 0.0009503568
+ - 0.06634934
+ - 0.15766625
+ - 0.0025532665
+ - 0.070668876
+ - 0.025748257
+ laughterScore: 0
+ - frameNumber: 11
+ frameDelay: 0
+ Visemes:
+ - 0.042716436
+ - 0.0020668597
+ - 0.0011998725
+ - 0.008064836
+ - 0.049754366
+ - 0.4222605
+ - 0.0019856405
+ - 0.0026443002
+ - 0.22169136
+ - 0.000675411
+ - 0.04655814
+ - 0.11037231
+ - 0.0018149541
+ - 0.05034665
+ - 0.018075092
+ laughterScore: 0
+ - frameNumber: 12
+ frameDelay: 0
+ Visemes:
+ - 0.041595466
+ - 0.0015264489
+ - 0.0008941593
+ - 0.008746208
+ - 0.049044266
+ - 0.5637806
+ - 0.001437278
+ - 0.0038648616
+ - 0.15536366
+ - 0.00048397298
+ - 0.03273599
+ - 0.07727658
+ - 0.0013547919
+ - 0.03532269
+ - 0.012731772
+ laughterScore: 0
+ - frameNumber: 13
+ frameDelay: 0
+ Visemes:
+ - 0.04445952
+ - 0.0011556408
+ - 0.00068476546
+ - 0.012071058
+ - 0.043640625
+ - 0.61936724
+ - 0.0010399597
+ - 0.0040570907
+ - 0.10948708
+ - 0.00046230206
+ - 0.05378283
+ - 0.054566763
+ - 0.0088646505
+ - 0.025718674
+ - 0.0109529095
+ laughterScore: 0
+ - frameNumber: 14
+ frameDelay: 0
+ Visemes:
+ - 0.037794888
+ - 0.00090295874
+ - 0.0005100547
+ - 0.012083714
+ - 0.031903908
+ - 0.5358386
+ - 0.0007458463
+ - 0.0028889375
+ - 0.078282915
+ - 0.0011731605
+ - 0.13993338
+ - 0.056344938
+ - 0.0631429
+ - 0.020708354
+ - 0.010963195
+ laughterScore: 0
+ - frameNumber: 15
+ frameDelay: 0
+ Visemes:
+ - 0.039578922
+ - 0.00067603524
+ - 0.0003940633
+ - 0.009371325
+ - 0.022972157
+ - 0.38907522
+ - 0.00055411836
+ - 0.0021271557
+ - 0.05553557
+ - 0.0097114965
+ - 0.24569699
+ - 0.08575799
+ - 0.10285775
+ - 0.019411227
+ - 0.011532402
+ laughterScore: 0
+ - frameNumber: 16
+ frameDelay: 0
+ Visemes:
+ - 0.032197807
+ - 0.0005866955
+ - 0.0004621332
+ - 0.0067241555
+ - 0.017672582
+ - 0.42193392
+ - 0.000395441
+ - 0.0015803691
+ - 0.041612234
+ - 0.014293741
+ - 0.26072523
+ - 0.06750667
+ - 0.10798
+ - 0.014617357
+ - 0.008388358
+ laughterScore: 0
+ - frameNumber: 17
+ frameDelay: 0
+ Visemes:
+ - 0.02879173
+ - 0.031970114
+ - 0.0031205951
+ - 0.0052644587
+ - 0.0145080825
+ - 0.4494401
+ - 0.00031212528
+ - 0.0016938059
+ - 0.05449997
+ - 0.011273762
+ - 0.24120189
+ - 0.049242873
+ - 0.08971581
+ - 0.010502204
+ - 0.006136207
+ laughterScore: 0
+ - frameNumber: 18
+ frameDelay: 0
+ Visemes:
+ - 0.029527305
+ - 0.23115717
+ - 0.0025635143
+ - 0.0038454304
+ - 0.01345492
+ - 0.3572933
+ - 0.00023394117
+ - 0.0012533064
+ - 0.06447956
+ - 0.007954874
+ - 0.17713755
+ - 0.034529485
+ - 0.06324294
+ - 0.0073694754
+ - 0.004328859
+ laughterScore: 0
+ - frameNumber: 19
+ frameDelay: 0
+ Visemes:
+ - 0.027432995
+ - 0.39956284
+ - 0.0021467628
+ - 0.0032882714
+ - 0.0108974865
+ - 0.2664314
+ - 0.00018839029
+ - 0.0009223202
+ - 0.07374068
+ - 0.005593988
+ - 0.13157801
+ - 0.02421227
+ - 0.04459566
+ - 0.0051695257
+ - 0.0030995377
+ laughterScore: 0
+ - frameNumber: 20
+ frameDelay: 0
+ Visemes:
+ - 0.022293897
+ - 0.5230965
+ - 0.0018363303
+ - 0.0043121255
+ - 0.020247357
+ - 0.19605544
+ - 0.0006334302
+ - 0.0007459111
+ - 0.07758628
+ - 0.0039259684
+ - 0.09436317
+ - 0.016953228
+ - 0.031349964
+ - 0.0036264209
+ - 0.0021760135
+ laughterScore: 0
+ - frameNumber: 21
+ frameDelay: 0
+ Visemes:
+ - 0.017130233
+ - 0.3776475
+ - 0.0016406018
+ - 0.0046632364
+ - 0.29368246
+ - 0.13930923
+ - 0.0032055392
+ - 0.00068914227
+ - 0.054715216
+ - 0.0027622432
+ - 0.066113904
+ - 0.011868377
+ - 0.021948935
+ - 0.0025398356
+ - 0.0015249689
+ laughterScore: 0
+ - frameNumber: 22
+ frameDelay: 0
+ Visemes:
+ - 0.013944332
+ - 0.2663191
+ - 0.0017517834
+ - 0.007148456
+ - 0.4856586
+ - 0.09794902
+ - 0.0023809453
+ - 0.011124862
+ - 0.038426574
+ - 0.0019381494
+ - 0.04637192
+ - 0.008308858
+ - 0.015392845
+ - 0.0017848747
+ - 0.0011087204
+ laughterScore: 0
+ - frameNumber: 23
+ frameDelay: 0
+ Visemes:
+ - 0.01240921
+ - 0.18656681
+ - 0.0012939783
+ - 0.006267685
+ - 0.6128932
+ - 0.07023379
+ - 0.0017203494
+ - 0.008772537
+ - 0.026940307
+ - 0.0014439013
+ - 0.050927855
+ - 0.0058289845
+ - 0.010938006
+ - 0.0012777024
+ - 0.0022119093
+ laughterScore: 0
+ - frameNumber: 24
+ frameDelay: 0
+ Visemes:
+ - 0.0120033985
+ - 0.13064878
+ - 0.00095961837
+ - 0.004714897
+ - 0.641405
+ - 0.049375977
+ - 0.0014369173
+ - 0.0067391885
+ - 0.018985495
+ - 0.001140613
+ - 0.105360344
+ - 0.014379765
+ - 0.008175256
+ - 0.0014166827
+ - 0.0030664543
+ laughterScore: 0
+ - frameNumber: 25
+ frameDelay: 0
+ Visemes:
+ - 0.012115514
+ - 0.09146101
+ - 0.00068102224
+ - 0.004096401
+ - 0.45452544
+ - 0.035225518
+ - 0.001069894
+ - 0.0048253573
+ - 0.013731522
+ - 0.0011919381
+ - 0.2942767
+ - 0.057786617
+ - 0.017298507
+ - 0.0023990325
+ - 0.009181415
+ laughterScore: 0
+ - frameNumber: 26
+ frameDelay: 0
+ Visemes:
+ - 0.010217884
+ - 0.064069845
+ - 0.0005020849
+ - 0.0070187356
+ - 0.32019418
+ - 0.02477539
+ - 0.00076341594
+ - 0.003389713
+ - 0.010563907
+ - 0.0016489651
+ - 0.48458886
+ - 0.045243375
+ - 0.015965637
+ - 0.0019275291
+ - 0.0090366155
+ laughterScore: 0
+ - frameNumber: 27
+ frameDelay: 0
+ Visemes:
+ - 0.0074960357
+ - 0.044905916
+ - 0.00071192835
+ - 0.2840287
+ - 0.2408968
+ - 0.017506136
+ - 0.00058082235
+ - 0.0024111154
+ - 0.0077012447
+ - 0.0011596725
+ - 0.34189534
+ - 0.031695884
+ - 0.01120245
+ - 0.0013502676
+ - 0.0063919905
+ laughterScore: 0
+ - frameNumber: 28
+ frameDelay: 0
+ Visemes:
+ - 0.0058351103
+ - 0.031682614
+ - 0.00071971567
+ - 0.39551315
+ - 0.26122203
+ - 0.012624622
+ - 0.0004092023
+ - 0.0016997437
+ - 0.005693308
+ - 0.00081429305
+ - 0.24718527
+ - 0.022552593
+ - 0.00852897
+ - 0.0009522191
+ - 0.0045211683
+ laughterScore: 0
+ - frameNumber: 29
+ frameDelay: 0
+ Visemes:
+ - 0.005272584
+ - 0.02234325
+ - 0.0005235615
+ - 0.28667688
+ - 0.22616936
+ - 0.008968363
+ - 0.00030169627
+ - 0.0011911072
+ - 0.004040596
+ - 0.00062851247
+ - 0.18563464
+ - 0.2388756
+ - 0.014556665
+ - 0.000703163
+ - 0.0040818453
+ laughterScore: 0
+ - frameNumber: 30
+ frameDelay: 0
+ Visemes:
+ - 0.004962476
+ - 0.01587894
+ - 0.00042997394
+ - 0.20087455
+ - 0.15998773
+ - 0.006443899
+ - 0.00027327111
+ - 0.00083655183
+ - 0.00286721
+ - 0.00054147106
+ - 0.13146597
+ - 0.45485783
+ - 0.0151174385
+ - 0.0005309521
+ - 0.0049092276
+ laughterScore: 0
+ - frameNumber: 31
+ frameDelay: 0
+ Visemes:
+ - 0.008796455
+ - 0.0121407695
+ - 0.0006506052
+ - 0.14103012
+ - 0.113588594
+ - 0.029507034
+ - 0.00038233772
+ - 0.0006376792
+ - 0.002118194
+ - 0.0013359365
+ - 0.09437514
+ - 0.5258185
+ - 0.06270012
+ - 0.00044627758
+ - 0.006456497
+ laughterScore: 0
+ - frameNumber: 32
+ frameDelay: 0
+ Visemes:
+ - 0.010057434
+ - 0.008983291
+ - 0.0012789884
+ - 0.09949135
+ - 0.086588986
+ - 0.02191579
+ - 0.00030317076
+ - 0.00059168355
+ - 0.0022533368
+ - 0.0027098143
+ - 0.07235774
+ - 0.5991079
+ - 0.08524965
+ - 0.0022294207
+ - 0.006870392
+ laughterScore: 0
+ - frameNumber: 33
+ frameDelay: 0
+ Visemes:
+ - 0.010425324
+ - 0.006446606
+ - 0.00093250995
+ - 0.069840275
+ - 0.061953153
+ - 0.015996667
+ - 0.00021808632
+ - 0.00045327417
+ - 0.002781857
+ - 0.0032421974
+ - 0.06528353
+ - 0.6658831
+ - 0.08499366
+ - 0.0059983344
+ - 0.0055436855
+ laughterScore: 0
+ - frameNumber: 34
+ frameDelay: 0
+ Visemes:
+ - 0.033572298
+ - 0.0048393826
+ - 0.00078190677
+ - 0.049008768
+ - 0.050184537
+ - 0.011715296
+ - 0.00015383628
+ - 0.0006175674
+ - 0.005401548
+ - 0.0042185634
+ - 0.1541471
+ - 0.5076312
+ - 0.07796253
+ - 0.094834864
+ - 0.004925223
+ laughterScore: 0
+ - frameNumber: 35
+ frameDelay: 0
+ Visemes:
+ - 0.037490718
+ - 0.0037641143
+ - 0.0006439128
+ - 0.034331366
+ - 0.036461424
+ - 0.008698323
+ - 0.00011196155
+ - 0.00045746233
+ - 0.0048277546
+ - 0.003626259
+ - 0.32877403
+ - 0.35976145
+ - 0.056004595
+ - 0.12142035
+ - 0.0036224762
+ laughterScore: 0
+ - frameNumber: 36
+ frameDelay: 0
+ Visemes:
+ - 0.042833697
+ - 0.0027431487
+ - 0.0004945083
+ - 0.024041345
+ - 0.02607563
+ - 0.0062696673
+ - 0.00008204773
+ - 0.00035528396
+ - 0.0042527197
+ - 0.0036376505
+ - 0.4456404
+ - 0.2602603
+ - 0.03981046
+ - 0.14084953
+ - 0.0026509704
+ laughterScore: 0
+ - frameNumber: 37
+ frameDelay: 0
+ Visemes:
+ - 0.040767483
+ - 0.0020069508
+ - 0.0003780954
+ - 0.01684585
+ - 0.0186676
+ - 0.0046851877
+ - 0.00006421579
+ - 0.0002747725
+ - 0.0041813166
+ - 0.0035472338
+ - 0.5500365
+ - 0.18777359
+ - 0.028250145
+ - 0.14040802
+ - 0.0021111635
+ laughterScore: 0
+ - frameNumber: 38
+ frameDelay: 0
+ Visemes:
+ - 0.045661703
+ - 0.0021293706
+ - 0.00057188683
+ - 0.011960465
+ - 0.01787312
+ - 0.007945454
+ - 0.00038758086
+ - 0.0007232211
+ - 0.007040435
+ - 0.0052551934
+ - 0.602828
+ - 0.13842057
+ - 0.020515418
+ - 0.13634083
+ - 0.0023454383
+ laughterScore: 0
+ - frameNumber: 39
+ frameDelay: 0
+ Visemes:
+ - 0.043223303
+ - 0.0016757788
+ - 0.0004975175
+ - 0.008543719
+ - 0.016421717
+ - 0.008110484
+ - 0.00064523204
+ - 0.0011244832
+ - 0.009083355
+ - 0.0054427395
+ - 0.68594754
+ - 0.101970665
+ - 0.014645472
+ - 0.100605875
+ - 0.0020612357
+ laughterScore: 0
+ - frameNumber: 40
+ frameDelay: 0
+ Visemes:
+ - 0.034447078
+ - 0.0013316683
+ - 0.00394444
+ - 0.007318582
+ - 0.012830719
+ - 0.20284003
+ - 0.017130084
+ - 0.023012636
+ - 0.008387262
+ - 0.0044598356
+ - 0.5166992
+ - 0.07903223
+ - 0.010730652
+ - 0.07621572
+ - 0.0016192632
+ laughterScore: 0
+ - frameNumber: 41
+ frameDelay: 0
+ Visemes:
+ - 0.026424328
+ - 0.0011093951
+ - 0.0036793272
+ - 0.0076150903
+ - 0.015002618
+ - 0.3807757
+ - 0.013263028
+ - 0.04437922
+ - 0.0065625105
+ - 0.0032604313
+ - 0.37839633
+ - 0.056578375
+ - 0.0077933674
+ - 0.054021016
+ - 0.001138823
+ laughterScore: 0
+ - frameNumber: 42
+ frameDelay: 0
+ Visemes:
+ - 0.022380477
+ - 0.00085031765
+ - 0.0027628103
+ - 0.014038447
+ - 0.022544455
+ - 0.5340665
+ - 0.009522601
+ - 0.03145694
+ - 0.004861746
+ - 0.002314931
+ - 0.27135527
+ - 0.039625436
+ - 0.005526024
+ - 0.03789333
+ - 0.0008003606
+ laughterScore: 0
+ - frameNumber: 43
+ frameDelay: 0
+ Visemes:
+ - 0.018336155
+ - 0.00062101707
+ - 0.002040291
+ - 0.012203827
+ - 0.028748304
+ - 0.65170544
+ - 0.00935561
+ - 0.02227845
+ - 0.003440154
+ - 0.0016271598
+ - 0.19075519
+ - 0.027749313
+ - 0.0040133977
+ - 0.026561322
+ - 0.00056411675
+ laughterScore: 0
+ - frameNumber: 44
+ frameDelay: 0
+ Visemes:
+ - 0.01796741
+ - 0.00043914685
+ - 0.0014384257
+ - 0.008592242
+ - 0.024167314
+ - 0.73638415
+ - 0.014602805
+ - 0.017541805
+ - 0.0024186752
+ - 0.001141326
+ - 0.13377558
+ - 0.019434238
+ - 0.0030891122
+ - 0.01859755
+ - 0.00041006412
+ laughterScore: 0
+ - frameNumber: 45
+ frameDelay: 0
+ Visemes:
+ - 0.017165862
+ - 0.00031574132
+ - 0.0010093052
+ - 0.006046323
+ - 0.017135698
+ - 0.77346206
+ - 0.010591146
+ - 0.012442072
+ - 0.0017319405
+ - 0.0008678123
+ - 0.10996045
+ - 0.0138448095
+ - 0.02038592
+ - 0.013022343
+ - 0.0020183804
+ laughterScore: 0
+ - frameNumber: 46
+ frameDelay: 0
+ Visemes:
+ - 0.016620623
+ - 0.00022602628
+ - 0.00070822926
+ - 0.004254208
+ - 0.012055287
+ - 0.5604972
+ - 0.0076904986
+ - 0.008730224
+ - 0.0012671046
+ - 0.00062602275
+ - 0.22524858
+ - 0.08833023
+ - 0.06110888
+ - 0.009150675
+ - 0.003486094
+ laughterScore: 0
+ - frameNumber: 47
+ frameDelay: 0
+ Visemes:
+ - 0.021419313
+ - 0.00021789392
+ - 0.0004979706
+ - 0.003255248
+ - 0.008738815
+ - 0.3937367
+ - 0.006655276
+ - 0.0061468408
+ - 0.002052932
+ - 0.0062348126
+ - 0.23075175
+ - 0.09833953
+ - 0.18673846
+ - 0.007877629
+ - 0.027336814
+ laughterScore: 0
+ - frameNumber: 48
+ frameDelay: 0
+ Visemes:
+ - 0.032933466
+ - 0.00046639895
+ - 0.00036296045
+ - 0.0023142048
+ - 0.007197286
+ - 0.27868816
+ - 0.0047016493
+ - 0.0043851733
+ - 0.07700451
+ - 0.025250684
+ - 0.22912326
+ - 0.09230763
+ - 0.18937618
+ - 0.017466065
+ - 0.038422376
+ laughterScore: 0
+ - frameNumber: 49
+ frameDelay: 0
+ Visemes:
+ - 0.028642299
+ - 0.0005880791
+ - 0.00027499846
+ - 0.0016345787
+ - 0.005430831
+ - 0.19544376
+ - 0.0033022196
+ - 0.0031460878
+ - 0.28966027
+ - 0.02494463
+ - 0.16487129
+ - 0.07569768
+ - 0.15880126
+ - 0.01844079
+ - 0.029121205
+ laughterScore: 0
+ - frameNumber: 50
+ frameDelay: 0
+ Visemes:
+ - 0.023067486
+ - 0.00055501604
+ - 0.00038425822
+ - 0.0017334975
+ - 0.004121787
+ - 0.13727666
+ - 0.0023206202
+ - 0.0023273895
+ - 0.48675787
+ - 0.019519828
+ - 0.11640816
+ - 0.05311013
+ - 0.11147049
+ - 0.015458832
+ - 0.025487965
+ laughterScore: 0
+ - frameNumber: 51
+ frameDelay: 0
+ Visemes:
+ - 0.01973831
+ - 0.00057668425
+ - 0.0003383741
+ - 0.0024978193
+ - 0.0033942328
+ - 0.096874356
+ - 0.001666352
+ - 0.0017003414
+ - 0.61152047
+ - 0.014700342
+ - 0.08672291
+ - 0.0385863
+ - 0.087250754
+ - 0.012129367
+ - 0.02230338
+ laughterScore: 0
+ - frameNumber: 52
+ frameDelay: 0
+ Visemes:
+ - 0.019577244
+ - 0.0004426139
+ - 0.0003974433
+ - 0.00289038
+ - 0.0030288124
+ - 0.0687229
+ - 0.0012524978
+ - 0.0013078841
+ - 0.45006827
+ - 0.018699033
+ - 0.16914916
+ - 0.03728081
+ - 0.1805019
+ - 0.012260133
+ - 0.0344209
+ laughterScore: 0
+ - frameNumber: 53
+ frameDelay: 0
+ Visemes:
+ - 0.017981324
+ - 0.0003506632
+ - 0.0007161306
+ - 0.004955544
+ - 0.0053155404
+ - 0.04833559
+ - 0.001004914
+ - 0.0016657433
+ - 0.32666862
+ - 0.031583555
+ - 0.26428482
+ - 0.037367463
+ - 0.21099141
+ - 0.014570995
+ - 0.03420762
+ laughterScore: 0
+ - frameNumber: 54
+ frameDelay: 0
+ Visemes:
+ - 0.018474773
+ - 0.00030148044
+ - 0.0012633031
+ - 0.0038996523
+ - 0.015141137
+ - 0.03403755
+ - 0.0007359667
+ - 0.17111877
+ - 0.23068346
+ - 0.02360694
+ - 0.24575862
+ - 0.029439248
+ - 0.1898957
+ - 0.011579916
+ - 0.024063442
+ laughterScore: 0
+ - frameNumber: 55
+ frameDelay: 0
+ Visemes:
+ - 0.022852648
+ - 0.000355898
+ - 0.0017541335
+ - 0.0034991156
+ - 0.071270876
+ - 0.024462657
+ - 0.00057335274
+ - 0.34109133
+ - 0.1621548
+ - 0.016679475
+ - 0.17582913
+ - 0.020664833
+ - 0.13382946
+ - 0.008118959
+ - 0.016863288
+ laughterScore: 0
+ - frameNumber: 56
+ frameDelay: 0
+ Visemes:
+ - 0.025293324
+ - 0.00044927344
+ - 0.0016247304
+ - 0.0029292668
+ - 0.05885834
+ - 0.017700868
+ - 0.00055425824
+ - 0.5169899
+ - 0.113635816
+ - 0.011712116
+ - 0.12419615
+ - 0.0144855315
+ - 0.094009705
+ - 0.0057118298
+ - 0.011848908
+ laughterScore: 0
+ - frameNumber: 57
+ frameDelay: 0
+ Visemes:
+ - 0.043732993
+ - 0.00076973916
+ - 0.0012846244
+ - 0.0074452907
+ - 0.06951284
+ - 0.013187172
+ - 0.00069968443
+ - 0.5950425
+ - 0.08085291
+ - 0.008298564
+ - 0.089592
+ - 0.01024921
+ - 0.06665647
+ - 0.0041917884
+ - 0.008484189
+ laughterScore: 0
+ - frameNumber: 58
+ frameDelay: 0
+ Visemes:
+ - 0.0664439
+ - 0.001465436
+ - 0.001146704
+ - 0.016228642
+ - 0.095590785
+ - 0.010352241
+ - 0.0008695204
+ - 0.60968846
+ - 0.06083439
+ - 0.0058776597
+ - 0.06722905
+ - 0.00726753
+ - 0.047746267
+ - 0.003117364
+ - 0.0061420854
+ laughterScore: 0
+ - frameNumber: 59
+ frameDelay: 0
+ Visemes:
+ - 0.07999274
+ - 0.001959219
+ - 0.0013597121
+ - 0.024497882
+ - 0.09771326
+ - 0.008082056
+ - 0.0008384939
+ - 0.6364437
+ - 0.048053708
+ - 0.0041752025
+ - 0.050361063
+ - 0.005234498
+ - 0.034301996
+ - 0.0023598992
+ - 0.0046266117
+ laughterScore: 0
+ - frameNumber: 60
+ frameDelay: 0
+ Visemes:
+ - 0.09321719
+ - 0.009542588
+ - 0.0013221394
+ - 0.024571639
+ - 0.11305056
+ - 0.022789277
+ - 0.0007616305
+ - 0.62555766
+ - 0.034716863
+ - 0.002974503
+ - 0.038110636
+ - 0.0038125152
+ - 0.024439849
+ - 0.0018036133
+ - 0.0033293276
+ laughterScore: 0
+ - frameNumber: 61
+ frameDelay: 0
+ Visemes:
+ - 0.12667584
+ - 0.010779021
+ - 0.002387184
+ - 0.035194606
+ - 0.18149364
+ - 0.045510866
+ - 0.0010033823
+ - 0.4890887
+ - 0.04808191
+ - 0.0021974563
+ - 0.0300706
+ - 0.0031444894
+ - 0.019481169
+ - 0.0016113904
+ - 0.0032797395
+ laughterScore: 0
+ - frameNumber: 62
+ frameDelay: 0
+ Visemes:
+ - 0.12565099
+ - 0.033620246
+ - 0.011055496
+ - 0.028564062
+ - 0.13495141
+ - 0.035426587
+ - 0.00074947876
+ - 0.34708217
+ - 0.16135252
+ - 0.0018964448
+ - 0.022616414
+ - 0.0024155716
+ - 0.015449244
+ - 0.0034942736
+ - 0.07567512
+ laughterScore: 0
+ - frameNumber: 63
+ frameDelay: 0
+ Visemes:
+ - 0.09972553
+ - 0.025159383
+ - 0.00816735
+ - 0.02079829
+ - 0.09542756
+ - 0.025286859
+ - 0.0005400277
+ - 0.2430783
+ - 0.38382223
+ - 0.0014357876
+ - 0.017684005
+ - 0.0022931509
+ - 0.011998794
+ - 0.0028789516
+ - 0.061703775
+ laughterScore: 0
+ - frameNumber: 64
+ frameDelay: 0
+ Visemes:
+ - 0.0736291
+ - 0.01773693
+ - 0.0057331175
+ - 0.0146672325
+ - 0.06688562
+ - 0.017740158
+ - 0.00038518303
+ - 0.1701742
+ - 0.5582727
+ - 0.001050266
+ - 0.015404287
+ - 0.0024707816
+ - 0.00962814
+ - 0.0020706584
+ - 0.044151664
+ laughterScore: 0
+ - frameNumber: 65
+ frameDelay: 0
+ Visemes:
+ - 0.06943717
+ - 0.0125883585
+ - 0.004021703
+ - 0.010729968
+ - 0.047296777
+ - 0.0128633855
+ - 0.00031207877
+ - 0.11914874
+ - 0.46378374
+ - 0.0013096745
+ - 0.1185502
+ - 0.05362912
+ - 0.050639987
+ - 0.0017998684
+ - 0.033889316
+ laughterScore: 0
+ - frameNumber: 66
+ frameDelay: 0
+ Visemes:
+ - 0.06219898
+ - 0.0088983
+ - 0.003054027
+ - 0.008107371
+ - 0.03667109
+ - 0.00981968
+ - 0.0003217427
+ - 0.083688565
+ - 0.32571483
+ - 0.0012617996
+ - 0.095358714
+ - 0.12693802
+ - 0.15619977
+ - 0.0019554887
+ - 0.07981168
+ laughterScore: 0
+ - frameNumber: 67
+ frameDelay: 0
+ Visemes:
+ - 0.055709664
+ - 0.007410113
+ - 0.0041032284
+ - 0.010813075
+ - 0.07064969
+ - 0.018180558
+ - 0.00076579844
+ - 0.059317622
+ - 0.22967516
+ - 0.0011916878
+ - 0.07197597
+ - 0.120927125
+ - 0.24991684
+ - 0.0016362218
+ - 0.097727284
+ laughterScore: 0
+ - frameNumber: 68
+ frameDelay: 0
+ Visemes:
+ - 0.06659386
+ - 0.015878422
+ - 0.0042693876
+ - 0.06786735
+ - 0.1694807
+ - 0.060080364
+ - 0.0069534895
+ - 0.042858813
+ - 0.16365814
+ - 0.0009551839
+ - 0.05395102
+ - 0.08672928
+ - 0.18338744
+ - 0.0012708065
+ - 0.07606578
+ laughterScore: 0
+ - frameNumber: 69
+ frameDelay: 0
+ Visemes:
+ - 0.077009514
+ - 0.024027202
+ - 0.0039427844
+ - 0.09232974
+ - 0.28053427
+ - 0.073756605
+ - 0.016902857
+ - 0.03093955
+ - 0.11504605
+ - 0.0007370593
+ - 0.040034946
+ - 0.06089812
+ - 0.1292396
+ - 0.000937894
+ - 0.05366386
+ laughterScore: 0
+ - frameNumber: 70
+ frameDelay: 0
+ Visemes:
+ - 0.10212845
+ - 0.032208383
+ - 0.003184193
+ - 0.09640841
+ - 0.32878155
+ - 0.11239095
+ - 0.0160798
+ - 0.023334388
+ - 0.08122435
+ - 0.0006190339
+ - 0.03001934
+ - 0.042958755
+ - 0.09146317
+ - 0.00076482206
+ - 0.038434453
+ laughterScore: 0
+ - frameNumber: 71
+ frameDelay: 0
+ Visemes:
+ - 0.08184541
+ - 0.023399018
+ - 0.002365929
+ - 0.07865714
+ - 0.46703333
+ - 0.08166625
+ - 0.040571034
+ - 0.023495624
+ - 0.056993883
+ - 0.000459776
+ - 0.021424737
+ - 0.030089546
+ - 0.06446441
+ - 0.0005833963
+ - 0.026950568
+ laughterScore: 0
+ - frameNumber: 72
+ frameDelay: 0
+ Visemes:
+ - 0.070706606
+ - 0.01893577
+ - 0.0020910604
+ - 0.056286573
+ - 0.37456793
+ - 0.058708746
+ - 0.028706934
+ - 0.24713174
+ - 0.039967276
+ - 0.000367347
+ - 0.016721329
+ - 0.021105152
+ - 0.045349177
+ - 0.00043023014
+ - 0.018924184
+ laughterScore: 0
+ - frameNumber: 73
+ frameDelay: 0
+ Visemes:
+ - 0.055599
+ - 0.013441945
+ - 0.0015211317
+ - 0.03969477
+ - 0.26746705
+ - 0.041288532
+ - 0.02016704
+ - 0.4597314
+ - 0.027992088
+ - 0.00026370617
+ - 0.012681535
+ - 0.014779353
+ - 0.031816766
+ - 0.00030310027
+ - 0.013252644
+ laughterScore: 0
+ - frameNumber: 74
+ frameDelay: 0
+ Visemes:
+ - 0.046251744
+ - 0.009458842
+ - 0.0010949062
+ - 0.028049761
+ - 0.19054975
+ - 0.029073631
+ - 0.014151208
+ - 0.60846525
+ - 0.019627504
+ - 0.00019678641
+ - 0.010674933
+ - 0.010369599
+ - 0.022509987
+ - 0.00022786316
+ - 0.009298271
+ laughterScore: 0
+ - frameNumber: 75
+ frameDelay: 0
+ Visemes:
+ - 0.042615905
+ - 0.006706831
+ - 0.0008053351
+ - 0.02003154
+ - 0.1390353
+ - 0.02051923
+ - 0.009913087
+ - 0.707954
+ - 0.013803651
+ - 0.00014815618
+ - 0.008182215
+ - 0.00733575
+ - 0.016214127
+ - 0.00018728802
+ - 0.006547641
+ laughterScore: 0
+ - frameNumber: 76
+ frameDelay: 0
+ Visemes:
+ - 0.0366691
+ - 0.0047415434
+ - 0.00065147615
+ - 0.017763007
+ - 0.101122126
+ - 0.015472719
+ - 0.0070022237
+ - 0.67903113
+ - 0.010119928
+ - 0.00019456448
+ - 0.016258836
+ - 0.030085165
+ - 0.07561193
+ - 0.0006241576
+ - 0.004652145
+ laughterScore: 0
+ - frameNumber: 77
+ frameDelay: 0
+ Visemes:
+ - 0.031289376
+ - 0.0033915404
+ - 0.00046332437
+ - 0.0128867505
+ - 0.07098968
+ - 0.011175748
+ - 0.0049175783
+ - 0.47598252
+ - 0.008261192
+ - 0.00019560689
+ - 0.018441997
+ - 0.110692866
+ - 0.24685454
+ - 0.0010834847
+ - 0.0033738443
+ laughterScore: 0
+ - frameNumber: 78
+ frameDelay: 0
+ Visemes:
+ - 0.028089799
+ - 0.0029403323
+ - 0.00033704148
+ - 0.0090511935
+ - 0.04975932
+ - 0.009349403
+ - 0.0034494575
+ - 0.33333576
+ - 0.006602415
+ - 0.00018927228
+ - 0.01510003
+ - 0.13298494
+ - 0.40431887
+ - 0.0018524816
+ - 0.0026397142
+ laughterScore: 0
+ - frameNumber: 79
+ frameDelay: 0
+ Visemes:
+ - 0.022024222
+ - 0.0021754093
+ - 0.00024508606
+ - 0.0063365884
+ - 0.0348647
+ - 0.17902075
+ - 0.0024177413
+ - 0.23334068
+ - 0.01025412
+ - 0.00014552778
+ - 0.011234309
+ - 0.09898859
+ - 0.39574456
+ - 0.0013177972
+ - 0.0018899267
+ laughterScore: 0
+ - frameNumber: 80
+ frameDelay: 0
+ Visemes:
+ - 0.016523225
+ - 0.0020085643
+ - 0.00017278353
+ - 0.0044383877
+ - 0.024430616
+ - 0.41828388
+ - 0.0016928765
+ - 0.16333908
+ - 0.012407025
+ - 0.000102198326
+ - 0.0078887
+ - 0.069329835
+ - 0.27712995
+ - 0.0009228566
+ - 0.0013300335
+ laughterScore: 0
+ - frameNumber: 81
+ frameDelay: 0
+ Visemes:
+ - 0.016046146
+ - 0.004744874
+ - 0.00016260322
+ - 0.0035865533
+ - 0.018683694
+ - 0.5613651
+ - 0.0012095608
+ - 0.11436865
+ - 0.029512279
+ - 0.00007493986
+ - 0.0057921503
+ - 0.048621055
+ - 0.19421214
+ - 0.0006465001
+ - 0.0009736961
+ laughterScore: 0
+ - frameNumber: 82
+ frameDelay: 0
+ Visemes:
+ - 0.021242052
+ - 0.011218915
+ - 0.00038291258
+ - 0.0061978726
+ - 0.01631609
+ - 0.65678847
+ - 0.000893985
+ - 0.08013641
+ - 0.029935796
+ - 0.00006044121
+ - 0.005003859
+ - 0.03410336
+ - 0.13626985
+ - 0.00045436565
+ - 0.0009955674
+ laughterScore: 0
+ - frameNumber: 83
+ frameDelay: 0
+ Visemes:
+ - 0.028188653
+ - 0.012620175
+ - 0.00047384304
+ - 0.011605196
+ - 0.01869056
+ - 0.72291064
+ - 0.0006909281
+ - 0.056233708
+ - 0.023211613
+ - 0.000052805513
+ - 0.004542507
+ - 0.023920646
+ - 0.095675
+ - 0.00032346806
+ - 0.00086022785
+ laughterScore: 0
+ - frameNumber: 84
+ frameDelay: 0
+ Visemes:
+ - 0.034973875
+ - 0.028654736
+ - 0.0005870419
+ - 0.028366823
+ - 0.020703567
+ - 0.73718196
+ - 0.00087412295
+ - 0.04010397
+ - 0.018201742
+ - 0.000057273097
+ - 0.004558833
+ - 0.016823953
+ - 0.06740846
+ - 0.0002678801
+ - 0.0012357379
+ laughterScore: 0
+ - frameNumber: 85
+ frameDelay: 0
+ Visemes:
+ - 0.055918053
+ - 0.038282722
+ - 0.001241616
+ - 0.039893143
+ - 0.029003162
+ - 0.7248988
+ - 0.0010106316
+ - 0.028559608
+ - 0.014528219
+ - 0.000066578556
+ - 0.0048933476
+ - 0.012070562
+ - 0.047724016
+ - 0.00029381402
+ - 0.0016157881
+ laughterScore: 0
+ - frameNumber: 86
+ frameDelay: 0
+ Visemes:
+ - 0.08747584
+ - 0.039004095
+ - 0.0023926133
+ - 0.0466882
+ - 0.032553025
+ - 0.7056149
+ - 0.0010690293
+ - 0.020258188
+ - 0.014089076
+ - 0.00008626371
+ - 0.0046461234
+ - 0.008916327
+ - 0.034503087
+ - 0.00045563828
+ - 0.002247598
+ laughterScore: 0
+ - frameNumber: 87
+ frameDelay: 0
+ Visemes:
+ - 0.06795297
+ - 0.027990697
+ - 0.0019548542
+ - 0.052826043
+ - 0.288097
+ - 0.49721465
+ - 0.000941141
+ - 0.01663169
+ - 0.010207291
+ - 0.00008295874
+ - 0.0033417759
+ - 0.00628925
+ - 0.024470933
+ - 0.00032907692
+ - 0.0016696702
+ laughterScore: 0
+ - frameNumber: 88
+ frameDelay: 0
+ Visemes:
+ - 0.05384724
+ - 0.020099714
+ - 0.0016583535
+ - 0.09955419
+ - 0.38614562
+ - 0.34846008
+ - 0.00072618766
+ - 0.011666623
+ - 0.007262648
+ - 0.0003018127
+ - 0.008648135
+ - 0.010657454
+ - 0.04915887
+ - 0.00035544092
+ - 0.001457612
+ laughterScore: 0
+ - frameNumber: 89
+ frameDelay: 0
+ Visemes:
+ - 0.04171737
+ - 0.01424723
+ - 0.0012925363
+ - 0.08470727
+ - 0.49253178
+ - 0.24448197
+ - 0.0008772082
+ - 0.008208897
+ - 0.005254058
+ - 0.00051712774
+ - 0.012207724
+ - 0.05323543
+ - 0.039277207
+ - 0.00037348887
+ - 0.0010707168
+ laughterScore: 0
+ - frameNumber: 90
+ frameDelay: 0
+ Visemes:
+ - 0.03925153
+ - 0.010224459
+ - 0.0009696471
+ - 0.060723465
+ - 0.37027147
+ - 0.17139696
+ - 0.0007490716
+ - 0.005759154
+ - 0.004197557
+ - 0.0012882977
+ - 0.11063194
+ - 0.1878508
+ - 0.03322717
+ - 0.0025593617
+ - 0.00089914864
+ laughterScore: 0
+ - frameNumber: 91
+ frameDelay: 0
+ Visemes:
+ - 0.039015368
+ - 0.0072572664
+ - 0.0007361988
+ - 0.042764444
+ - 0.2762027
+ - 0.12024359
+ - 0.000608381
+ - 0.004051597
+ - 0.0036803372
+ - 0.0013544548
+ - 0.21510029
+ - 0.25821245
+ - 0.025119016
+ - 0.0049347393
+ - 0.0007191988
+ laughterScore: 0
+ - frameNumber: 92
+ frameDelay: 0
+ Visemes:
+ - 0.033860277
+ - 0.0052986117
+ - 0.0006164016
+ - 0.029977083
+ - 0.19990101
+ - 0.08444835
+ - 0.00044957196
+ - 0.0028730491
+ - 0.0033583743
+ - 0.0010502025
+ - 0.3121305
+ - 0.30136105
+ - 0.018782197
+ - 0.0052601704
+ - 0.00063318183
+ laughterScore: 0
+ - frameNumber: 93
+ frameDelay: 0
+ Visemes:
+ - 0.033566434
+ - 0.04190243
+ - 0.0013464625
+ - 0.02099176
+ - 0.15096502
+ - 0.05926968
+ - 0.00032154244
+ - 0.0020578732
+ - 0.024257822
+ - 0.0012777194
+ - 0.2560813
+ - 0.3780981
+ - 0.019954678
+ - 0.009321503
+ - 0.00058770104
+ laughterScore: 0
+ - frameNumber: 94
+ frameDelay: 0
+ Visemes:
+ - 0.02675902
+ - 0.30908558
+ - 0.0012650904
+ - 0.014698462
+ - 0.107934505
+ - 0.041536774
+ - 0.00022548536
+ - 0.0014529136
+ - 0.030071827
+ - 0.0009292195
+ - 0.18013188
+ - 0.26479313
+ - 0.014177498
+ - 0.006525786
+ - 0.00041290926
+ laughterScore: 0
+ - frameNumber: 95
+ frameDelay: 0
+ Visemes:
+ - 0.022885531
+ - 0.51037425
+ - 0.00089862617
+ - 0.010345088
+ - 0.0757713
+ - 0.02908616
+ - 0.00015827609
+ - 0.0010197265
+ - 0.022117965
+ - 0.00065141567
+ - 0.12641293
+ - 0.18537436
+ - 0.01004093
+ - 0.0045681526
+ - 0.00029530644
+ laughterScore: 0
+ - frameNumber: 96
+ frameDelay: 0
+ Visemes:
+ - 0.018891856
+ - 0.6404621
+ - 0.00074154325
+ - 0.007457844
+ - 0.054208852
+ - 0.020457858
+ - 0.000120156874
+ - 0.00074588734
+ - 0.019459028
+ - 0.00053997064
+ - 0.09217339
+ - 0.13069181
+ - 0.010059876
+ - 0.0032339839
+ - 0.0007558366
+ laughterScore: 0
+ - frameNumber: 97
+ frameDelay: 0
+ Visemes:
+ - 0.028363474
+ - 0.51170087
+ - 0.0005889558
+ - 0.008123036
+ - 0.03871512
+ - 0.015487171
+ - 0.000099774596
+ - 0.00068790355
+ - 0.027744215
+ - 0.0011758126
+ - 0.19247021
+ - 0.10943074
+ - 0.039217543
+ - 0.024402004
+ - 0.0017931199
+ laughterScore: 0
+ - frameNumber: 98
+ frameDelay: 0
+ Visemes:
+ - 0.038320776
+ - 0.39480782
+ - 0.00046921326
+ - 0.006763586
+ - 0.02950316
+ - 0.014035546
+ - 0.0000972032
+ - 0.00081485766
+ - 0.029550359
+ - 0.0018285296
+ - 0.26462126
+ - 0.09174236
+ - 0.061978985
+ - 0.062152572
+ - 0.0033137077
+ laughterScore: 0
+ - frameNumber: 99
+ frameDelay: 0
+ Visemes:
+ - 0.039392862
+ - 0.2993533
+ - 0.00046294805
+ - 0.005977528
+ - 0.022928452
+ - 0.011628456
+ - 0.000079994345
+ - 0.0007336058
+ - 0.029751178
+ - 0.0027595866
+ - 0.38966984
+ - 0.0711422
+ - 0.05509966
+ - 0.067912936
+ - 0.0031074078
+ laughterScore: 0
+ - frameNumber: 100
+ frameDelay: 0
+ Visemes:
+ - 0.03593653
+ - 0.21178599
+ - 0.00040322536
+ - 0.0059419638
+ - 0.017657062
+ - 0.008757024
+ - 0.0000592025
+ - 0.00055959896
+ - 0.022172192
+ - 0.0072907126
+ - 0.5309373
+ - 0.05274121
+ - 0.040173452
+ - 0.06288337
+ - 0.0027011358
+ laughterScore: 0
+ - frameNumber: 101
+ frameDelay: 0
+ Visemes:
+ - 0.03237486
+ - 0.14966202
+ - 0.00063374295
+ - 0.0047812676
+ - 0.016722867
+ - 0.0064401906
+ - 0.000045064116
+ - 0.0004906043
+ - 0.01936207
+ - 0.011319741
+ - 0.617712
+ - 0.03822789
+ - 0.030242758
+ - 0.06908316
+ - 0.0029017376
+ laughterScore: 0
+ - frameNumber: 102
+ frameDelay: 0
+ Visemes:
+ - 0.03410927
+ - 0.10592623
+ - 0.0012132379
+ - 0.0034922126
+ - 0.014335929
+ - 0.004893616
+ - 0.000033474516
+ - 0.0005056675
+ - 0.024675407
+ - 0.013739752
+ - 0.5029475
+ - 0.02805909
+ - 0.021712951
+ - 0.23815224
+ - 0.0062034484
+ laughterScore: 0
+ - frameNumber: 103
+ frameDelay: 0
+ Visemes:
+ - 0.043752037
+ - 0.07816314
+ - 0.0020255877
+ - 0.0028712747
+ - 0.015075946
+ - 0.004574948
+ - 0.000041553427
+ - 0.0009181808
+ - 0.05621866
+ - 0.011078524
+ - 0.3844725
+ - 0.02053523
+ - 0.015735552
+ - 0.34565747
+ - 0.018879425
+ laughterScore: 0
+ - frameNumber: 104
+ frameDelay: 0
+ Visemes:
+ - 0.045025762
+ - 0.0690388
+ - 0.002338903
+ - 0.0039424626
+ - 0.01505513
+ - 0.0075767897
+ - 0.0002707045
+ - 0.002700721
+ - 0.09890065
+ - 0.00841088
+ - 0.30206168
+ - 0.014716443
+ - 0.012518727
+ - 0.39480144
+ - 0.022640945
+ laughterScore: 0
+ - frameNumber: 105
+ frameDelay: 0
+ Visemes:
+ - 0.042763263
+ - 0.059583735
+ - 0.0035950039
+ - 0.0057557886
+ - 0.019003185
+ - 0.0070396825
+ - 0.00047282243
+ - 0.0053967508
+ - 0.123597234
+ - 0.006573273
+ - 0.22760065
+ - 0.010479234
+ - 0.010013548
+ - 0.46183437
+ - 0.016291464
+ laughterScore: 0
+ - frameNumber: 106
+ frameDelay: 0
+ Visemes:
+ - 0.03796515
+ - 0.052504107
+ - 0.0032560425
+ - 0.0057785735
+ - 0.015046106
+ - 0.006004295
+ - 0.0003746707
+ - 0.004166157
+ - 0.09963648
+ - 0.0049225297
+ - 0.1641388
+ - 0.007374326
+ - 0.0071173795
+ - 0.5799581
+ - 0.011757279
+ laughterScore: 0
+ - frameNumber: 107
+ frameDelay: 0
+ Visemes:
+ - 0.040138826
+ - 0.059881013
+ - 0.002752834
+ - 0.0067144474
+ - 0.012505183
+ - 0.0062021445
+ - 0.00030353534
+ - 0.0031655356
+ - 0.08665398
+ - 0.003851371
+ - 0.12247251
+ - 0.0052084145
+ - 0.005100249
+ - 0.63649744
+ - 0.008552517
+ laughterScore: 0
+ - frameNumber: 108
+ frameDelay: 0
+ Visemes:
+ - 0.052037492
+ - 0.059344806
+ - 0.002403445
+ - 0.0077762613
+ - 0.011491224
+ - 0.0064544873
+ - 0.0002499851
+ - 0.0024983378
+ - 0.07965855
+ - 0.0031469504
+ - 0.093626976
+ - 0.00389395
+ - 0.004147238
+ - 0.666751
+ - 0.006519266
+ laughterScore: 0
+ - frameNumber: 109
+ frameDelay: 0
+ Visemes:
+ - 0.058834374
+ - 0.04951191
+ - 0.0018110872
+ - 0.0067824638
+ - 0.009398339
+ - 0.005522023
+ - 0.00018024168
+ - 0.0018348108
+ - 0.06907319
+ - 0.0023405955
+ - 0.090667695
+ - 0.0028045184
+ - 0.0032733805
+ - 0.69313717
+ - 0.0048281853
+ laughterScore: 0
+ - frameNumber: 110
+ frameDelay: 0
+ Visemes:
+ - 0.12384571
+ - 0.08202034
+ - 0.0014928023
+ - 0.0052591437
+ - 0.008198746
+ - 0.008101005
+ - 0.00013102144
+ - 0.0013569253
+ - 0.06611106
+ - 0.0018408018
+ - 0.0741044
+ - 0.00241727
+ - 0.0046116114
+ - 0.61667365
+ - 0.003835525
+ laughterScore: 0
+ - frameNumber: 111
+ frameDelay: 0
+ Visemes:
+ - 0.29147753
+ - 0.08607516
+ - 0.0011428643
+ - 0.0037579145
+ - 0.0068398556
+ - 0.0072281435
+ - 0.00009660011
+ - 0.0009947983
+ - 0.05792299
+ - 0.0013857958
+ - 0.056323595
+ - 0.0018272509
+ - 0.0040260763
+ - 0.47810948
+ - 0.0027919454
+ laughterScore: 0
+ - frameNumber: 112
+ frameDelay: 0
+ Visemes:
+ - 0.4815451
+ - 0.06841241
+ - 0.000819326
+ - 0.0027060462
+ - 0.0051010153
+ - 0.0058443127
+ - 0.000077753444
+ - 0.00072044873
+ - 0.04367846
+ - 0.0010116765
+ - 0.040867954
+ - 0.001477543
+ - 0.0032786408
+ - 0.34242198
+ - 0.0020373443
+ laughterScore: 0
+ - frameNumber: 113
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 114
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 115
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 116
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 117
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 118
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 119
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 120
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 121
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 122
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 123
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 124
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 125
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 126
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 127
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 128
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 129
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 130
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 131
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 132
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 133
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 134
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 135
+ frameDelay: 0
+ Visemes:
+ - 0.4997569
+ - 0.02457645
+ - 0.0007633354
+ - 0.0036130578
+ - 0.0015884994
+ - 0.017746048
+ - 0.0006371104
+ - 0.0016318428
+ - 0.0145978555
+ - 0.0008613867
+ - 0.34244105
+ - 0.00941612
+ - 0.008533899
+ - 0.06953105
+ - 0.0043054
+ laughterScore: 0
+ - frameNumber: 136
+ frameDelay: 0
+ Visemes:
+ - 0.36959445
+ - 0.017712899
+ - 0.0006884595
+ - 0.0026145515
+ - 0.0014428588
+ - 0.01656808
+ - 0.00046095648
+ - 0.0012113521
+ - 0.014034335
+ - 0.0018613132
+ - 0.47044688
+ - 0.0115263825
+ - 0.0075727575
+ - 0.080654174
+ - 0.003610538
+ laughterScore: 0
+ - frameNumber: 137
+ frameDelay: 0
+ Visemes:
+ - 0.26810223
+ - 0.012721831
+ - 0.00052521523
+ - 0.0019020812
+ - 0.0012267634
+ - 0.014185488
+ - 0.00033775772
+ - 0.0008775814
+ - 0.013455514
+ - 0.0065394174
+ - 0.5852049
+ - 0.015413262
+ - 0.0057552094
+ - 0.07088618
+ - 0.0028665536
+ laughterScore: 0
+ - frameNumber: 138
+ frameDelay: 0
+ Visemes:
+ - 0.19503479
+ - 0.009412985
+ - 0.00042832602
+ - 0.0016105996
+ - 0.0029658969
+ - 0.010849274
+ - 0.0007962963
+ - 0.00077544374
+ - 0.015932191
+ - 0.011124879
+ - 0.67256886
+ - 0.013448061
+ - 0.0050600544
+ - 0.054945316
+ - 0.0050470075
+ laughterScore: 0
+ - frameNumber: 139
+ frameDelay: 0
+ Visemes:
+ - 0.14451137
+ - 0.0088069
+ - 0.00051364774
+ - 0.0019690949
+ - 0.011456111
+ - 0.010938535
+ - 0.006912536
+ - 0.0018500991
+ - 0.041570045
+ - 0.014533311
+ - 0.6747343
+ - 0.015077716
+ - 0.013799218
+ - 0.04472022
+ - 0.008606881
+ laughterScore: 0
+ - frameNumber: 140
+ frameDelay: 0
+ Visemes:
+ - 0.10442167
+ - 0.0062362077
+ - 0.00046434934
+ - 0.00678935
+ - 0.03270248
+ - 0.2628223
+ - 0.005110837
+ - 0.0019281051
+ - 0.029522365
+ - 0.010255797
+ - 0.48096496
+ - 0.010648443
+ - 0.010319168
+ - 0.031775303
+ - 0.0060386043
+ laughterScore: 0
+ - frameNumber: 141
+ frameDelay: 0
+ Visemes:
+ - 0.07654335
+ - 0.004423649
+ - 0.00042375835
+ - 0.008703718
+ - 0.038171478
+ - 0.45446146
+ - 0.0040307646
+ - 0.0017838337
+ - 0.02073888
+ - 0.0071962764
+ - 0.3421883
+ - 0.007470823
+ - 0.007304113
+ - 0.022322742
+ - 0.004236801
+ laughterScore: 0
+ - frameNumber: 142
+ frameDelay: 0
+ Visemes:
+ - 0.056731876
+ - 0.0031238126
+ - 0.00032693165
+ - 0.006974632
+ - 0.039573897
+ - 0.59803087
+ - 0.0043530744
+ - 0.0018329474
+ - 0.014534979
+ - 0.005043656
+ - 0.24043904
+ - 0.005235161
+ - 0.005138299
+ - 0.0156872
+ - 0.0029735619
+ laughterScore: 0
+ - frameNumber: 143
+ frameDelay: 0
+ Visemes:
+ - 0.047102008
+ - 0.002195468
+ - 0.00025748136
+ - 0.004933282
+ - 0.032433636
+ - 0.6819451
+ - 0.020670524
+ - 0.007510179
+ - 0.0101801455
+ - 0.003535143
+ - 0.16840515
+ - 0.003674779
+ - 0.0040392056
+ - 0.0109937
+ - 0.0021241365
+ laughterScore: 0
+ - frameNumber: 144
+ frameDelay: 0
+ Visemes:
+ - 0.03568381
+ - 0.0015394308
+ - 0.00018229937
+ - 0.0034600932
+ - 0.022787113
+ - 0.76474774
+ - 0.0149748605
+ - 0.0053583225
+ - 0.0071321437
+ - 0.002495854
+ - 0.12112795
+ - 0.00271026
+ - 0.008376511
+ - 0.007697654
+ - 0.0017259639
+ laughterScore: 0
+ - frameNumber: 145
+ frameDelay: 0
+ Visemes:
+ - 0.031434946
+ - 0.0011186491
+ - 0.00013723802
+ - 0.002457481
+ - 0.015992468
+ - 0.5639369
+ - 0.013469327
+ - 0.0038438267
+ - 0.005051645
+ - 0.0017981754
+ - 0.26956898
+ - 0.03207404
+ - 0.047648616
+ - 0.0054255603
+ - 0.0060420902
+ laughterScore: 0
+ - frameNumber: 146
+ frameDelay: 0
+ Visemes:
+ - 0.050789658
+ - 0.00087452657
+ - 0.00011512956
+ - 0.0021554194
+ - 0.011538688
+ - 0.40504435
+ - 0.021834904
+ - 0.0029458203
+ - 0.0044801743
+ - 0.004246559
+ - 0.2715215
+ - 0.09065281
+ - 0.095742494
+ - 0.009847541
+ - 0.028210398
+ laughterScore: 0
+ - frameNumber: 147
+ frameDelay: 0
+ Visemes:
+ - 0.055074956
+ - 0.00087751955
+ - 0.00013283166
+ - 0.0015454541
+ - 0.009921504
+ - 0.28604373
+ - 0.015348537
+ - 0.0024470063
+ - 0.06432231
+ - 0.018874776
+ - 0.20986485
+ - 0.070705295
+ - 0.08193424
+ - 0.022240516
+ - 0.16066645
+ laughterScore: 0
+ - frameNumber: 148
+ frameDelay: 0
+ Visemes:
+ - 0.043478236
+ - 0.0008579445
+ - 0.00024761792
+ - 0.0012871163
+ - 0.008116435
+ - 0.20093895
+ - 0.010759077
+ - 0.0018822638
+ - 0.3231681
+ - 0.017892871
+ - 0.14822917
+ - 0.049629737
+ - 0.057927944
+ - 0.016930293
+ - 0.118654236
+ laughterScore: 0
+ - frameNumber: 149
+ frameDelay: 0
+ Visemes:
+ - 0.032461118
+ - 0.00074874813
+ - 0.00030078657
+ - 0.0015987835
+ - 0.006140773
+ - 0.14084281
+ - 0.0075364606
+ - 0.0013653163
+ - 0.51239336
+ - 0.013202124
+ - 0.10541377
+ - 0.034938503
+ - 0.041313984
+ - 0.012329468
+ - 0.089413986
+ laughterScore: 0
+ - frameNumber: 150
+ frameDelay: 0
+ Visemes:
+ - 0.025961122
+ - 0.0007306588
+ - 0.00030325717
+ - 0.0017363708
+ - 0.004860199
+ - 0.099281326
+ - 0.0053171976
+ - 0.0009873762
+ - 0.4994892
+ - 0.01401544
+ - 0.14460632
+ - 0.02728729
+ - 0.09340415
+ - 0.014308006
+ - 0.067712046
+ laughterScore: 0
+ - frameNumber: 151
+ frameDelay: 0
+ Visemes:
+ - 0.021580914
+ - 0.00070765615
+ - 0.0011099747
+ - 0.0020229425
+ - 0.0049021007
+ - 0.07012266
+ - 0.0037657232
+ - 0.004726608
+ - 0.37688932
+ - 0.012553897
+ - 0.18158564
+ - 0.02305552
+ - 0.23042095
+ - 0.015015842
+ - 0.05154023
+ laughterScore: 0
+ - frameNumber: 152
+ frameDelay: 0
+ Visemes:
+ - 0.023667276
+ - 0.0011428874
+ - 0.0020902287
+ - 0.0063787433
+ - 0.035740286
+ - 0.050929233
+ - 0.0026661577
+ - 0.20854405
+ - 0.27107388
+ - 0.009793049
+ - 0.1495293
+ - 0.01630836
+ - 0.17503773
+ - 0.010821348
+ - 0.03627747
+ laughterScore: 0
+ - frameNumber: 153
+ frameDelay: 0
+ Visemes:
+ - 0.039005697
+ - 0.0013756761
+ - 0.002459702
+ - 0.009818966
+ - 0.091071755
+ - 0.037296806
+ - 0.00202073
+ - 0.34128618
+ - 0.1906238
+ - 0.007112073
+ - 0.110100076
+ - 0.011443222
+ - 0.12327933
+ - 0.0076534734
+ - 0.02545249
+ laughterScore: 0
+ - frameNumber: 154
+ frameDelay: 0
+ Visemes:
+ - 0.044636726
+ - 0.0014508374
+ - 0.0025083786
+ - 0.0091599785
+ - 0.09059214
+ - 0.026616663
+ - 0.0014764045
+ - 0.4879857
+ - 0.13365707
+ - 0.005041875
+ - 0.07850945
+ - 0.008049838
+ - 0.086911574
+ - 0.005443826
+ - 0.017959563
+ laughterScore: 0
+ - frameNumber: 155
+ frameDelay: 0
+ Visemes:
+ - 0.058021843
+ - 0.001892318
+ - 0.0024222997
+ - 0.013222102
+ - 0.10034859
+ - 0.020982934
+ - 0.0011043506
+ - 0.56278366
+ - 0.09429967
+ - 0.0035713075
+ - 0.057309873
+ - 0.005680871
+ - 0.061670136
+ - 0.0039610006
+ - 0.0127291065
+ laughterScore: 0
+ - frameNumber: 156
+ frameDelay: 0
+ Visemes:
+ - 0.053910032
+ - 0.07765001
+ - 0.0022456446
+ - 0.019962445
+ - 0.116948426
+ - 0.015752366
+ - 0.00092394225
+ - 0.45967102
+ - 0.11003008
+ - 0.002694603
+ - 0.06726078
+ - 0.00469794
+ - 0.05374615
+ - 0.0028725194
+ - 0.011634082
+ laughterScore: 0
+ - frameNumber: 157
+ frameDelay: 0
+ Visemes:
+ - 0.04923777
+ - 0.10314576
+ - 0.0020361417
+ - 0.016593872
+ - 0.08732201
+ - 0.011285355
+ - 0.00066501996
+ - 0.32835776
+ - 0.2571803
+ - 0.002551978
+ - 0.07222409
+ - 0.0041938704
+ - 0.04266656
+ - 0.0024861752
+ - 0.020053338
+ laughterScore: 0
+ - frameNumber: 158
+ frameDelay: 0
+ Visemes:
+ - 0.04596574
+ - 0.07864524
+ - 0.0016373935
+ - 0.013017435
+ - 0.062464066
+ - 0.008168409
+ - 0.0004751454
+ - 0.23017474
+ - 0.4343412
+ - 0.0020471844
+ - 0.052641865
+ - 0.00465035
+ - 0.03170015
+ - 0.0021366635
+ - 0.03193446
+ laughterScore: 0
+ - frameNumber: 159
+ frameDelay: 0
+ Visemes:
+ - 0.037227876
+ - 0.05543257
+ - 0.0011682397
+ - 0.009295752
+ - 0.043895125
+ - 0.00577635
+ - 0.00034080015
+ - 0.16114114
+ - 0.57962406
+ - 0.0014660582
+ - 0.039301455
+ - 0.0049793157
+ - 0.03158369
+ - 0.0015443405
+ - 0.027223192
+ laughterScore: 0
+ - frameNumber: 160
+ frameDelay: 0
+ Visemes:
+ - 0.04256703
+ - 0.03913025
+ - 0.00083024503
+ - 0.007269121
+ - 0.031023616
+ - 0.0046471246
+ - 0.00032413093
+ - 0.11284052
+ - 0.51913756
+ - 0.0012679542
+ - 0.04604871
+ - 0.028026344
+ - 0.144946
+ - 0.0011833034
+ - 0.020758055
+ laughterScore: 0
+ - frameNumber: 161
+ frameDelay: 0
+ Visemes:
+ - 0.03749201
+ - 0.027561352
+ - 0.0006597255
+ - 0.0061688735
+ - 0.025740238
+ - 0.003506951
+ - 0.00025822473
+ - 0.079089254
+ - 0.3647781
+ - 0.001582837
+ - 0.037852272
+ - 0.031841815
+ - 0.36133316
+ - 0.0015577221
+ - 0.020577447
+ laughterScore: 0
+ - frameNumber: 162
+ frameDelay: 0
+ Visemes:
+ - 0.03380577
+ - 0.09693343
+ - 0.0036202916
+ - 0.015652377
+ - 0.092319116
+ - 0.01711316
+ - 0.0012513043
+ - 0.055452723
+ - 0.25611958
+ - 0.0013336018
+ - 0.028547823
+ - 0.027175138
+ - 0.3457567
+ - 0.0015266157
+ - 0.023392335
+ laughterScore: 0
+ - frameNumber: 163
+ frameDelay: 0
+ Visemes:
+ - 0.026864773
+ - 0.32254037
+ - 0.0045066173
+ - 0.024682656
+ - 0.0841154
+ - 0.017470866
+ - 0.0011742291
+ - 0.038854446
+ - 0.1793323
+ - 0.0009430007
+ - 0.020245066
+ - 0.01906317
+ - 0.24271032
+ - 0.001082943
+ - 0.016413864
+ laughterScore: 0
+ - frameNumber: 164
+ frameDelay: 0
+ Visemes:
+ - 0.023067174
+ - 0.4650646
+ - 0.007798618
+ - 0.023718705
+ - 0.097973734
+ - 0.014123436
+ - 0.003439476
+ - 0.028484236
+ - 0.12556925
+ - 0.00066834164
+ - 0.014315704
+ - 0.013362967
+ - 0.17009516
+ - 0.00077673927
+ - 0.01154184
+ laughterScore: 0
+ - frameNumber: 165
+ frameDelay: 0
+ Visemes:
+ - 0.024527032
+ - 0.4467969
+ - 0.0064147455
+ - 0.018321784
+ - 0.12138432
+ - 0.013725969
+ - 0.0026306883
+ - 0.13012688
+ - 0.087948576
+ - 0.000504185
+ - 0.010288159
+ - 0.009381632
+ - 0.119170114
+ - 0.00055907416
+ - 0.0082199145
+ laughterScore: 0
+ - frameNumber: 166
+ frameDelay: 0
+ Visemes:
+ - 0.02281138
+ - 0.41276994
+ - 0.004675603
+ - 0.013316987
+ - 0.09007257
+ - 0.010102017
+ - 0.0018647786
+ - 0.2782476
+ - 0.061606884
+ - 0.00038950067
+ - 0.007812813
+ - 0.006591895
+ - 0.08353738
+ - 0.0004011589
+ - 0.0057994872
+ laughterScore: 0
+ - frameNumber: 167
+ frameDelay: 0
+ Visemes:
+ - 0.020004261
+ - 0.30329272
+ - 0.0034011935
+ - 0.009465639
+ - 0.064780354
+ - 0.0072282497
+ - 0.0013182238
+ - 0.47268543
+ - 0.0431657
+ - 0.0002907841
+ - 0.006819544
+ - 0.004626957
+ - 0.058546994
+ - 0.00028648393
+ - 0.0040874877
+ laughterScore: 0
+ - frameNumber: 168
+ frameDelay: 0
+ Visemes:
+ - 0.022479463
+ - 0.21245687
+ - 0.0025090463
+ - 0.007588499
+ - 0.049258262
+ - 0.005189195
+ - 0.00093411835
+ - 0.6147436
+ - 0.030438581
+ - 0.00022184334
+ - 0.0065138214
+ - 0.0032713092
+ - 0.041189723
+ - 0.0002617471
+ - 0.0029439642
+ laughterScore: 0
+ - frameNumber: 169
+ frameDelay: 0
+ Visemes:
+ - 0.03188533
+ - 0.14920948
+ - 0.0021638395
+ - 0.008107258
+ - 0.042336084
+ - 0.0037607201
+ - 0.00066400634
+ - 0.7000948
+ - 0.021533594
+ - 0.00018321605
+ - 0.0059720585
+ - 0.0023588869
+ - 0.029267767
+ - 0.00024124469
+ - 0.0022216933
+ laughterScore: 0
+ - frameNumber: 170
+ frameDelay: 0
+ Visemes:
+ - 0.036764108
+ - 0.10492984
+ - 0.0022642156
+ - 0.011980617
+ - 0.04674381
+ - 0.0039606737
+ - 0.00053976447
+ - 0.7357792
+ - 0.017837685
+ - 0.0002402624
+ - 0.0070879078
+ - 0.0026170763
+ - 0.02672905
+ - 0.0003388045
+ - 0.002186977
+ laughterScore: 0
+ - frameNumber: 171
+ frameDelay: 0
+ Visemes:
+ - 0.031422704
+ - 0.07370609
+ - 0.0018677551
+ - 0.012050642
+ - 0.043465137
+ - 0.0038471916
+ - 0.0005818857
+ - 0.5384295
+ - 0.013177926
+ - 0.0003423858
+ - 0.021690452
+ - 0.10600808
+ - 0.14897358
+ - 0.0023575707
+ - 0.0020791516
+ laughterScore: 0
+ - frameNumber: 172
+ frameDelay: 0
+ Visemes:
+ - 0.026118003
+ - 0.05161759
+ - 0.0013201254
+ - 0.008972679
+ - 0.031692147
+ - 0.0028158366
+ - 0.00045615097
+ - 0.37815344
+ - 0.009440825
+ - 0.0005968984
+ - 0.021348437
+ - 0.16585332
+ - 0.29667285
+ - 0.002822275
+ - 0.0021194778
+ laughterScore: 0
+ - frameNumber: 173
+ frameDelay: 0
+ Visemes:
+ - 0.024251793
+ - 0.03616917
+ - 0.00094663515
+ - 0.0064115003
+ - 0.022565627
+ - 0.0020705396
+ - 0.00034986495
+ - 0.26513517
+ - 0.0067154993
+ - 0.0008198733
+ - 0.019856745
+ - 0.23724404
+ - 0.37164345
+ - 0.0033501917
+ - 0.0024699462
+ laughterScore: 0
+ - frameNumber: 174
+ frameDelay: 0
+ Visemes:
+ - 0.022586074
+ - 0.025899073
+ - 0.0007168991
+ - 0.004541787
+ - 0.016366122
+ - 0.0033210479
+ - 0.00028081372
+ - 0.18575752
+ - 0.0064805755
+ - 0.0007688361
+ - 0.018532807
+ - 0.24749409
+ - 0.45586288
+ - 0.0030899078
+ - 0.008301597
+ laughterScore: 0
+ - frameNumber: 175
+ frameDelay: 0
+ Visemes:
+ - 0.018776871
+ - 0.01876414
+ - 0.0005975516
+ - 0.0031828894
+ - 0.012401237
+ - 0.09925593
+ - 0.00020151139
+ - 0.13004653
+ - 0.018338583
+ - 0.000570561
+ - 0.015116053
+ - 0.18600816
+ - 0.48838663
+ - 0.0021951695
+ - 0.006158227
+ laughterScore: 0
+ - frameNumber: 176
+ frameDelay: 0
+ Visemes:
+ - 0.014881355
+ - 0.013967392
+ - 0.0004536387
+ - 0.0022307558
+ - 0.009178836
+ - 0.31635785
+ - 0.00014405107
+ - 0.09104052
+ - 0.06000386
+ - 0.00040287414
+ - 0.010869599
+ - 0.13044353
+ - 0.34415218
+ - 0.0015374561
+ - 0.0043361243
+ laughterScore: 0
+ - frameNumber: 177
+ frameDelay: 0
+ Visemes:
+ - 0.013212339
+ - 0.012298985
+ - 0.00033623783
+ - 0.0017497378
+ - 0.015327995
+ - 0.47601324
+ - 0.00011725952
+ - 0.063741714
+ - 0.07218104
+ - 0.00028424966
+ - 0.00800957
+ - 0.09138199
+ - 0.24115604
+ - 0.0010771358
+ - 0.003112473
+ laughterScore: 0
+ - frameNumber: 178
+ frameDelay: 0
+ Visemes:
+ - 0.012771027
+ - 0.011294251
+ - 0.00027764894
+ - 0.0014052714
+ - 0.016665429
+ - 0.60764396
+ - 0.00013066674
+ - 0.044631545
+ - 0.062427085
+ - 0.00020914405
+ - 0.006388377
+ - 0.06400704
+ - 0.16915506
+ - 0.0007584805
+ - 0.0022350329
+ laughterScore: 0
+ - frameNumber: 179
+ frameDelay: 0
+ Visemes:
+ - 0.016576687
+ - 0.02200568
+ - 0.00035641115
+ - 0.0022591199
+ - 0.015909806
+ - 0.6900797
+ - 0.00015340815
+ - 0.031291984
+ - 0.05016005
+ - 0.00015240216
+ - 0.0055185147
+ - 0.04481385
+ - 0.118595295
+ - 0.0005347742
+ - 0.0015923459
+ laughterScore: 0
+ - frameNumber: 180
+ frameDelay: 0
+ Visemes:
+ - 0.014086846
+ - 0.017399177
+ - 0.0005440423
+ - 0.0058572656
+ - 0.015399868
+ - 0.7694574
+ - 0.00015234001
+ - 0.021975039
+ - 0.035152506
+ - 0.000109910616
+ - 0.0038853146
+ - 0.03138616
+ - 0.08308611
+ - 0.00037782098
+ - 0.0011302368
+ laughterScore: 0
+ - frameNumber: 181
+ frameDelay: 0
+ Visemes:
+ - 0.015651302
+ - 0.012751927
+ - 0.00066746987
+ - 0.009771483
+ - 0.011700978
+ - 0.81015474
+ - 0.0001277293
+ - 0.015439442
+ - 0.02472292
+ - 0.00016396516
+ - 0.0054526487
+ - 0.022990406
+ - 0.06894927
+ - 0.00034082052
+ - 0.0011149372
+ laughterScore: 0
+ - frameNumber: 182
+ frameDelay: 0
+ Visemes:
+ - 0.01682693
+ - 0.008961084
+ - 0.0004925296
+ - 0.00866122
+ - 0.00925957
+ - 0.5988272
+ - 0.00017798804
+ - 0.010945653
+ - 0.017436212
+ - 0.0003733737
+ - 0.045394465
+ - 0.06237238
+ - 0.21776085
+ - 0.0004322502
+ - 0.0020783313
+ laughterScore: 0
+ - frameNumber: 183
+ frameDelay: 0
+ Visemes:
+ - 0.021988979
+ - 0.006307506
+ - 0.00036705012
+ - 0.0073434487
+ - 0.008771362
+ - 0.42354274
+ - 0.00016056531
+ - 0.008080572
+ - 0.013457438
+ - 0.0015380445
+ - 0.08848247
+ - 0.13078487
+ - 0.2857061
+ - 0.0014507648
+ - 0.0020181166
+ laughterScore: 0
+ - frameNumber: 184
+ frameDelay: 0
+ Visemes:
+ - 0.030427702
+ - 0.0047013145
+ - 0.000625091
+ - 0.0056784186
+ - 0.084150195
+ - 0.2976082
+ - 0.00015020394
+ - 0.10854726
+ - 0.013792719
+ - 0.0014423669
+ - 0.09224654
+ - 0.11264558
+ - 0.2443362
+ - 0.0021615438
+ - 0.001486646
+ laughterScore: 0
+ - frameNumber: 185
+ frameDelay: 0
+ Visemes:
+ - 0.025925849
+ - 0.0033785133
+ - 0.0005473307
+ - 0.005463231
+ - 0.076580584
+ - 0.20846055
+ - 0.00013139276
+ - 0.3512191
+ - 0.009763726
+ - 0.0010244646
+ - 0.06492618
+ - 0.078880906
+ - 0.17112334
+ - 0.0015205062
+ - 0.0010543162
+ laughterScore: 0
+ - frameNumber: 186
+ frameDelay: 0
+ Visemes:
+ - 0.024923073
+ - 0.002473798
+ - 0.00039789453
+ - 0.020105151
+ - 0.054780137
+ - 0.14722085
+ - 0.00011653319
+ - 0.47432953
+ - 0.049173404
+ - 0.00075611006
+ - 0.04703944
+ - 0.055327777
+ - 0.1207037
+ - 0.0012949582
+ - 0.0013576244
+ laughterScore: 0
+ - frameNumber: 187
+ frameDelay: 0
+ Visemes:
+ - 0.026354808
+ - 0.0027923542
+ - 0.00036338926
+ - 0.015926482
+ - 0.038960293
+ - 0.11082129
+ - 0.00011573607
+ - 0.35527265
+ - 0.06369662
+ - 0.0007566991
+ - 0.19559711
+ - 0.040362936
+ - 0.10330032
+ - 0.010266848
+ - 0.03541245
+ laughterScore: 0
+ - frameNumber: 188
+ frameDelay: 0
+ Visemes:
+ - 0.027306557
+ - 0.0021945692
+ - 0.000638683
+ - 0.011480434
+ - 0.030605914
+ - 0.07901038
+ - 0.00009085033
+ - 0.25306714
+ - 0.10903734
+ - 0.0009330149
+ - 0.3046705
+ - 0.028871357
+ - 0.08270096
+ - 0.016961202
+ - 0.052431095
+ laughterScore: 0
+ - frameNumber: 189
+ frameDelay: 0
+ Visemes:
+ - 0.029539619
+ - 0.001847472
+ - 0.0011571937
+ - 0.008313333
+ - 0.038372956
+ - 0.055871107
+ - 0.00007439323
+ - 0.18041216
+ - 0.23600781
+ - 0.00082021963
+ - 0.262776
+ - 0.020298867
+ - 0.060164675
+ - 0.017127052
+ - 0.08721718
+ laughterScore: 0
+ - frameNumber: 190
+ frameDelay: 0
+ Visemes:
+ - 0.024189923
+ - 0.0013943333
+ - 0.0009330715
+ - 0.005920571
+ - 0.02813923
+ - 0.03927801
+ - 0.000055211956
+ - 0.1263861
+ - 0.42708796
+ - 0.000673764
+ - 0.18568534
+ - 0.01422571
+ - 0.04219037
+ - 0.012698861
+ - 0.09114156
+ laughterScore: 0
+ - frameNumber: 191
+ frameDelay: 0
+ Visemes:
+ - 0.021475866
+ - 0.0011331552
+ - 0.001667291
+ - 0.0043738196
+ - 0.021516826
+ - 0.028273119
+ - 0.000042919197
+ - 0.08853524
+ - 0.5595749
+ - 0.00068363803
+ - 0.13514794
+ - 0.010039279
+ - 0.030203544
+ - 0.0103533035
+ - 0.08697918
+ laughterScore: 0
+ - frameNumber: 192
+ frameDelay: 0
+ Visemes:
+ - 0.016843721
+ - 0.00084598584
+ - 0.0011821652
+ - 0.0032517363
+ - 0.015144769
+ - 0.01982942
+ - 0.000030361096
+ - 0.061981678
+ - 0.68313235
+ - 0.0005837896
+ - 0.09504988
+ - 0.0072632134
+ - 0.0212536
+ - 0.0073104133
+ - 0.06629695
+ laughterScore: 0
+ - frameNumber: 193
+ frameDelay: 0
+ Visemes:
+ - 0.012790658
+ - 0.00061163784
+ - 0.000851124
+ - 0.0024936206
+ - 0.010715375
+ - 0.013917609
+ - 0.000021514958
+ - 0.043388482
+ - 0.769206
+ - 0.00049921375
+ - 0.06894198
+ - 0.009724369
+ - 0.014962096
+ - 0.0051902225
+ - 0.046686105
+ laughterScore: 0
+ - frameNumber: 194
+ frameDelay: 0
+ Visemes:
+ - 0.01849867
+ - 0.0005295011
+ - 0.0006432551
+ - 0.0024258948
+ - 0.007846538
+ - 0.010175353
+ - 0.000018721612
+ - 0.030379014
+ - 0.62300885
+ - 0.0011427837
+ - 0.15034118
+ - 0.10228229
+ - 0.010743538
+ - 0.008985381
+ - 0.032979053
+ laughterScore: 0
+ - frameNumber: 195
+ frameDelay: 0
+ Visemes:
+ - 0.019189335
+ - 0.00040245417
+ - 0.0004804348
+ - 0.0017898428
+ - 0.0059247324
+ - 0.0076922965
+ - 0.000016112877
+ - 0.021270314
+ - 0.43833497
+ - 0.0014061414
+ - 0.25214863
+ - 0.21168335
+ - 0.0077581285
+ - 0.008766695
+ - 0.023136621
+ laughterScore: 0
+ - frameNumber: 196
+ frameDelay: 0
+ Visemes:
+ - 0.017539907
+ - 0.00029606707
+ - 0.00035435913
+ - 0.001310186
+ - 0.0045220465
+ - 0.0059280912
+ - 0.00002217756
+ - 0.014898866
+ - 0.30752268
+ - 0.0012105028
+ - 0.28705963
+ - 0.3304194
+ - 0.0055299504
+ - 0.0071721724
+ - 0.016213981
+ laughterScore: 0
+ - frameNumber: 197
+ frameDelay: 0
+ Visemes:
+ - 0.016771758
+ - 0.00026787625
+ - 0.00027177352
+ - 0.00095811684
+ - 0.0039472138
+ - 0.004336979
+ - 0.000056788853
+ - 0.010447763
+ - 0.21587329
+ - 0.0015496523
+ - 0.38150558
+ - 0.34057772
+ - 0.003950886
+ - 0.008081088
+ - 0.0114035085
+ laughterScore: 0
+ - frameNumber: 198
+ frameDelay: 0
+ Visemes:
+ - 0.015035646
+ - 0.00029887186
+ - 0.00024261553
+ - 0.00068392116
+ - 0.0034841807
+ - 0.0032963986
+ - 0.000149707
+ - 0.0073388903
+ - 0.15148559
+ - 0.0023293246
+ - 0.54462856
+ - 0.25412682
+ - 0.002851173
+ - 0.0058061136
+ - 0.008242206
+ laughterScore: 0
+ - frameNumber: 199
+ frameDelay: 0
+ Visemes:
+ - 0.012850264
+ - 0.00044423298
+ - 0.00038528518
+ - 0.00057200855
+ - 0.0035228506
+ - 0.0032516448
+ - 0.00024248555
+ - 0.00520361
+ - 0.10660429
+ - 0.0027639545
+ - 0.6709732
+ - 0.1803417
+ - 0.0022393041
+ - 0.004138522
+ - 0.006466611
+ laughterScore: 0
+ - frameNumber: 200
+ frameDelay: 0
+ Visemes:
+ - 0.0145234745
+ - 0.08123023
+ - 0.034622453
+ - 0.0014732472
+ - 0.019277617
+ - 0.00781265
+ - 0.000815931
+ - 0.0040257676
+ - 0.078380644
+ - 0.004942805
+ - 0.5634395
+ - 0.12778144
+ - 0.007750856
+ - 0.0034871518
+ - 0.050436247
+ laughterScore: 0
+ - frameNumber: 201
+ frameDelay: 0
+ Visemes:
+ - 0.012528925
+ - 0.29422805
+ - 0.06352362
+ - 0.0011937638
+ - 0.023248985
+ - 0.0062697567
+ - 0.00058592635
+ - 0.002823685
+ - 0.055016942
+ - 0.003859895
+ - 0.40249017
+ - 0.08958407
+ - 0.0063163843
+ - 0.0024557563
+ - 0.035874076
+ laughterScore: 0
+ - frameNumber: 202
+ frameDelay: 0
+ Visemes:
+ - 0.0113697285
+ - 0.47577393
+ - 0.05924415
+ - 0.000905024
+ - 0.023034394
+ - 0.0050332444
+ - 0.00042529058
+ - 0.0019862875
+ - 0.038549475
+ - 0.0027746442
+ - 0.28656262
+ - 0.06279568
+ - 0.0046433723
+ - 0.0017208408
+ - 0.025181359
+ laughterScore: 0
+ - frameNumber: 203
+ frameDelay: 0
+ Visemes:
+ - 0.01471274
+ - 0.5620915
+ - 0.0835957
+ - 0.00096171
+ - 0.034336466
+ - 0.0044634235
+ - 0.000372799
+ - 0.0016313166
+ - 0.027008908
+ - 0.0019949884
+ - 0.20258471
+ - 0.04399459
+ - 0.003381137
+ - 0.0012073627
+ - 0.017662631
+ laughterScore: 0
+ - frameNumber: 204
+ frameDelay: 0
+ Visemes:
+ - 0.017946107
+ - 0.65563273
+ - 0.08313887
+ - 0.0009411989
+ - 0.027034895
+ - 0.0038228726
+ - 0.0002846099
+ - 0.0012393175
+ - 0.01891491
+ - 0.0014678355
+ - 0.14283203
+ - 0.030859279
+ - 0.002544554
+ - 0.00087487896
+ - 0.012465971
+ laughterScore: 0
+ - frameNumber: 205
+ frameDelay: 0
+ Visemes:
+ - 0.02896365
+ - 0.72368836
+ - 0.067259975
+ - 0.0011374534
+ - 0.021564132
+ - 0.0051031485
+ - 0.00030479248
+ - 0.0010054797
+ - 0.013304823
+ - 0.0024094
+ - 0.101287305
+ - 0.021712856
+ - 0.0022645728
+ - 0.0007864374
+ - 0.009207696
+ laughterScore: 0
+ - frameNumber: 206
+ frameDelay: 0
+ Visemes:
+ - 0.026975757
+ - 0.58415955
+ - 0.05056066
+ - 0.0009805935
+ - 0.015339599
+ - 0.004040291
+ - 0.00022744466
+ - 0.0007718948
+ - 0.011772251
+ - 0.18519267
+ - 0.07906632
+ - 0.018741662
+ - 0.0068830834
+ - 0.0036558902
+ - 0.011632375
+ laughterScore: 0
+ - frameNumber: 207
+ frameDelay: 0
+ Visemes:
+ - 0.0411755
+ - 0.41536564
+ - 0.035666116
+ - 0.0007513005
+ - 0.011166937
+ - 0.0034380776
+ - 0.00017914794
+ - 0.00060014694
+ - 0.009190276
+ - 0.34050554
+ - 0.089839295
+ - 0.02392361
+ - 0.015300038
+ - 0.003908325
+ - 0.008990095
+ laughterScore: 0
+ - frameNumber: 208
+ frameDelay: 0
+ Visemes:
+ - 0.04240299
+ - 0.29131725
+ - 0.025108796
+ - 0.00060617144
+ - 0.010226319
+ - 0.0031852887
+ - 0.00013665835
+ - 0.0004622524
+ - 0.0068001198
+ - 0.48364538
+ - 0.077305056
+ - 0.028441899
+ - 0.020615866
+ - 0.002961079
+ - 0.006784898
+ laughterScore: 0
+ - frameNumber: 209
+ frameDelay: 0
+ Visemes:
+ - 0.035898045
+ - 0.20400122
+ - 0.017597852
+ - 0.00046209284
+ - 0.008698023
+ - 0.004271893
+ - 0.0001015896
+ - 0.00033640434
+ - 0.0048951525
+ - 0.6087835
+ - 0.056953218
+ - 0.035002656
+ - 0.015878268
+ - 0.0022048343
+ - 0.0049152565
+ laughterScore: 0
+ - frameNumber: 210
+ frameDelay: 0
+ Visemes:
+ - 0.029143726
+ - 0.14285737
+ - 0.012331516
+ - 0.00036811072
+ - 0.006549484
+ - 0.0046748947
+ - 0.000072980576
+ - 0.00024271743
+ - 0.0035638874
+ - 0.69758797
+ - 0.043200426
+ - 0.04167293
+ - 0.012398414
+ - 0.001688884
+ - 0.0036466592
+ laughterScore: 0
+ - frameNumber: 211
+ frameDelay: 0
+ Visemes:
+ - 0.023251696
+ - 0.100073345
+ - 0.008655415
+ - 0.0002857778
+ - 0.0048091654
+ - 0.0039858213
+ - 0.000053207226
+ - 0.00018052827
+ - 0.0027285023
+ - 0.7692814
+ - 0.034110073
+ - 0.03788144
+ - 0.010635793
+ - 0.0012917373
+ - 0.0027760926
+ laughterScore: 0
+ - frameNumber: 212
+ frameDelay: 0
+ Visemes:
+ - 0.017959952
+ - 0.070074305
+ - 0.0061033024
+ - 0.00021320058
+ - 0.0035284986
+ - 0.0029337278
+ - 0.000038836613
+ - 0.00013720154
+ - 0.0020599521
+ - 0.8300991
+ - 0.025872314
+ - 0.029130332
+ - 0.00878031
+ - 0.00095875043
+ - 0.0021102426
+ laughterScore: 0
+ - frameNumber: 213
+ frameDelay: 0
+ Visemes:
+ - 0.0141532235
+ - 0.04907287
+ - 0.004306176
+ - 0.00016155948
+ - 0.0027887234
+ - 0.002125878
+ - 0.00002906641
+ - 0.00011203867
+ - 0.0015820776
+ - 0.87532705
+ - 0.019169247
+ - 0.02178716
+ - 0.0070618438
+ - 0.000716947
+ - 0.0016061295
+ laughterScore: 0
+ - frameNumber: 214
+ frameDelay: 0
+ Visemes:
+ - 0.011492148
+ - 0.034424905
+ - 0.0030584564
+ - 0.00013726727
+ - 0.0028811865
+ - 0.0015545517
+ - 0.000024930345
+ - 0.0001270317
+ - 0.0015015495
+ - 0.90672326
+ - 0.013944041
+ - 0.0158582
+ - 0.006580351
+ - 0.00053664594
+ - 0.0011555022
+ laughterScore: 0
+ - frameNumber: 215
+ frameDelay: 0
+ Visemes:
+ - 0.014906539
+ - 0.02450191
+ - 0.0023842645
+ - 0.0004855647
+ - 0.0042681103
+ - 0.0033236258
+ - 0.000043763608
+ - 0.0006922557
+ - 0.002267308
+ - 0.8544632
+ - 0.010936675
+ - 0.012116922
+ - 0.068206914
+ - 0.00042711222
+ - 0.0009758705
+ laughterScore: 0
+ - frameNumber: 216
+ frameDelay: 0
+ Visemes:
+ - 0.014508035
+ - 0.017294891
+ - 0.001866816
+ - 0.00066587655
+ - 0.00430499
+ - 0.003943533
+ - 0.00004006675
+ - 0.0008360819
+ - 0.0026993358
+ - 0.61124194
+ - 0.00806349
+ - 0.009170921
+ - 0.32429793
+ - 0.00031177333
+ - 0.000754395
+ laughterScore: 0
+ - frameNumber: 217
+ frameDelay: 0
+ Visemes:
+ - 0.013466512
+ - 0.012148528
+ - 0.0016691732
+ - 0.001089693
+ - 0.004785115
+ - 0.0045747175
+ - 0.000045147215
+ - 0.0007853595
+ - 0.0023079168
+ - 0.42937732
+ - 0.0060772486
+ - 0.0073552164
+ - 0.5155121
+ - 0.00022794215
+ - 0.0005780561
+ laughterScore: 0
+ - frameNumber: 218
+ frameDelay: 0
+ Visemes:
+ - 0.010944126
+ - 0.0085255755
+ - 0.0012791988
+ - 0.0012769606
+ - 0.004003109
+ - 0.0040483433
+ - 0.000052723397
+ - 0.00067896396
+ - 0.0017790158
+ - 0.3011343
+ - 0.0053471895
+ - 0.005903019
+ - 0.6543411
+ - 0.00017248793
+ - 0.0005139078
+ laughterScore: 0
+ - frameNumber: 219
+ frameDelay: 0
+ Visemes:
+ - 0.012301058
+ - 0.0059737484
+ - 0.000925547
+ - 0.0061614234
+ - 0.0039914977
+ - 0.0028891712
+ - 0.000055801585
+ - 0.0016702134
+ - 0.0037356142
+ - 0.2131317
+ - 0.09227385
+ - 0.012893643
+ - 0.6407195
+ - 0.00016314237
+ - 0.0031141234
+ laughterScore: 0
+ - frameNumber: 220
+ frameDelay: 0
+ Visemes:
+ - 0.019432735
+ - 0.004258206
+ - 0.00080230983
+ - 0.09231814
+ - 0.035470977
+ - 0.0024166752
+ - 0.0001418202
+ - 0.0016764328
+ - 0.004930516
+ - 0.14974228
+ - 0.11196734
+ - 0.019136835
+ - 0.5522575
+ - 0.00091342
+ - 0.0045348452
+ laughterScore: 0
+ - frameNumber: 221
+ frameDelay: 0
+ Visemes:
+ - 0.01619294
+ - 0.0029995602
+ - 0.00069202436
+ - 0.329566
+ - 0.04629138
+ - 0.0017616958
+ - 0.00032728037
+ - 0.0016696074
+ - 0.0039976323
+ - 0.10486892
+ - 0.081851594
+ - 0.013839749
+ - 0.39208287
+ - 0.0006653825
+ - 0.0031933957
+ laughterScore: 0
+ - frameNumber: 222
+ frameDelay: 0
+ Visemes:
+ - 0.012214903
+ - 0.0021322826
+ - 0.0005244902
+ - 0.52643514
+ - 0.03435142
+ - 0.0012483422
+ - 0.00025303647
+ - 0.001508185
+ - 0.00309777
+ - 0.07341512
+ - 0.057644516
+ - 0.009861861
+ - 0.2745967
+ - 0.00047345212
+ - 0.0022428108
+ laughterScore: 0
+ - frameNumber: 223
+ frameDelay: 0
+ Visemes:
+ - 0.010151835
+ - 0.0015946475
+ - 0.00037697237
+ - 0.6492571
+ - 0.025441006
+ - 0.0008972386
+ - 0.00017935652
+ - 0.0010843017
+ - 0.0032244872
+ - 0.051404767
+ - 0.052296832
+ - 0.009532004
+ - 0.19260605
+ - 0.0003759171
+ - 0.0015774835
+ laughterScore: 0
+ - frameNumber: 224
+ frameDelay: 0
+ Visemes:
+ - 0.008826051
+ - 0.0011289584
+ - 0.00026579594
+ - 0.5394499
+ - 0.017991098
+ - 0.00068877195
+ - 0.0001259879
+ - 0.0007676187
+ - 0.0023881514
+ - 0.036080096
+ - 0.0447966
+ - 0.21115188
+ - 0.13492857
+ - 0.00030184872
+ - 0.0011087565
+ laughterScore: 0
+ - frameNumber: 225
+ frameDelay: 0
+ Visemes:
+ - 0.007946096
+ - 0.0007928437
+ - 0.00018818678
+ - 0.3783148
+ - 0.013722873
+ - 0.0006131451
+ - 0.00008945944
+ - 0.0005501947
+ - 0.0016893251
+ - 0.025294337
+ - 0.03367696
+ - 0.44155815
+ - 0.09448324
+ - 0.0003028332
+ - 0.0007776206
+ laughterScore: 0
+ - frameNumber: 226
+ frameDelay: 0
+ Visemes:
+ - 0.0075288564
+ - 0.000558701
+ - 0.00013743866
+ - 0.26496133
+ - 0.02602507
+ - 0.00060023484
+ - 0.00006649949
+ - 0.00040405415
+ - 0.0012110743
+ - 0.017747885
+ - 0.025233997
+ - 0.58843875
+ - 0.06619299
+ - 0.00034216925
+ - 0.00055096345
+ laughterScore: 0
+ - frameNumber: 227
+ frameDelay: 0
+ Visemes:
+ - 0.0072641103
+ - 0.00039906608
+ - 0.00011292026
+ - 0.18550883
+ - 0.06526257
+ - 0.0007222182
+ - 0.00005340311
+ - 0.00034770282
+ - 0.00090299384
+ - 0.012524956
+ - 0.019049292
+ - 0.6605767
+ - 0.046490796
+ - 0.00038779885
+ - 0.0003966366
+ laughterScore: 0
+ - frameNumber: 228
+ frameDelay: 0
+ Visemes:
+ - 0.008404292
+ - 0.00030518818
+ - 0.0001094405
+ - 0.12989508
+ - 0.2939944
+ - 0.0010457195
+ - 0.000050840972
+ - 0.00029204102
+ - 0.0007590958
+ - 0.008858282
+ - 0.0144994045
+ - 0.50828576
+ - 0.03290794
+ - 0.00028959187
+ - 0.00030296113
+ laughterScore: 0
+ - frameNumber: 229
+ frameDelay: 0
+ Visemes:
+ - 0.0093285795
+ - 0.0002455374
+ - 0.00009401941
+ - 0.09098397
+ - 0.48944163
+ - 0.0015289282
+ - 0.00006875106
+ - 0.0002476746
+ - 0.0010517922
+ - 0.0062808543
+ - 0.012363221
+ - 0.3638673
+ - 0.024034072
+ - 0.00022059357
+ - 0.00024303372
+ laughterScore: 0
+ - frameNumber: 230
+ frameDelay: 0
+ Visemes:
+ - 0.023976326
+ - 0.00037606573
+ - 0.00008235483
+ - 0.063757025
+ - 0.60700035
+ - 0.0032620197
+ - 0.00006256628
+ - 0.00026536023
+ - 0.002549408
+ - 0.004585696
+ - 0.009935798
+ - 0.26405174
+ - 0.019677432
+ - 0.00020499792
+ - 0.00021279995
+ laughterScore: 0
+ - frameNumber: 231
+ frameDelay: 0
+ Visemes:
+ - 0.03949599
+ - 0.002685824
+ - 0.00021144416
+ - 0.045011993
+ - 0.5324943
+ - 0.012132416
+ - 0.0001974436
+ - 0.000295662
+ - 0.015559733
+ - 0.0034637693
+ - 0.0087651685
+ - 0.24847841
+ - 0.09053069
+ - 0.00021724054
+ - 0.0004598077
+ laughterScore: 0
+ - frameNumber: 232
+ frameDelay: 0
+ Visemes:
+ - 0.03758818
+ - 0.0025580456
+ - 0.00015513078
+ - 0.031609066
+ - 0.37583715
+ - 0.011020178
+ - 0.00015619243
+ - 0.00023724561
+ - 0.020943351
+ - 0.0025059865
+ - 0.0092910575
+ - 0.3862019
+ - 0.12112413
+ - 0.00020414728
+ - 0.0005682064
+ laughterScore: 0
+ - frameNumber: 233
+ frameDelay: 0
+ Visemes:
+ - 0.02973984
+ - 0.0018841486
+ - 0.00011032672
+ - 0.022151923
+ - 0.26383328
+ - 0.008043869
+ - 0.0001116054
+ - 0.0001693296
+ - 0.021615183
+ - 0.0017837181
+ - 0.008991491
+ - 0.5397586
+ - 0.10112021
+ - 0.00015949208
+ - 0.00052690785
+ laughterScore: 0
+ - frameNumber: 234
+ frameDelay: 0
+ Visemes:
+ - 0.029116496
+ - 0.0015408732
+ - 0.00008475941
+ - 0.015568893
+ - 0.18587114
+ - 0.0061625624
+ - 0.000081227954
+ - 0.00013975865
+ - 0.032664865
+ - 0.0014973144
+ - 0.010720702
+ - 0.6146364
+ - 0.10029172
+ - 0.00019984995
+ - 0.0014233928
+ laughterScore: 0
+ - frameNumber: 235
+ frameDelay: 0
+ Visemes:
+ - 0.026827691
+ - 0.0011241648
+ - 0.0000612583
+ - 0.010925573
+ - 0.13059822
+ - 0.004408208
+ - 0.00005852518
+ - 0.00010919795
+ - 0.03148398
+ - 0.0011985551
+ - 0.009076945
+ - 0.6945652
+ - 0.08808312
+ - 0.0001940738
+ - 0.0012853061
+ laughterScore: 0
+ - frameNumber: 236
+ frameDelay: 0
+ Visemes:
+ - 0.025387088
+ - 0.00085904525
+ - 0.000045510405
+ - 0.0076772296
+ - 0.09205346
+ - 0.003161042
+ - 0.00004183611
+ - 0.00008758172
+ - 0.04209417
+ - 0.0010223017
+ - 0.0079129245
+ - 0.74160874
+ - 0.07682327
+ - 0.00019419409
+ - 0.001031643
+ laughterScore: 0
+ - frameNumber: 237
+ frameDelay: 0
+ Visemes:
+ - 0.02003984
+ - 0.002207387
+ - 0.00004052395
+ - 0.005381103
+ - 0.06470732
+ - 0.0029917366
+ - 0.00002973339
+ - 0.00006774223
+ - 0.31697744
+ - 0.0007254214
+ - 0.0063568978
+ - 0.5241382
+ - 0.055460352
+ - 0.000137255
+ - 0.00073902175
+ laughterScore: 0
+ - frameNumber: 238
+ frameDelay: 0
+ Visemes:
+ - 0.023185592
+ - 0.0017588142
+ - 0.00005001023
+ - 0.0038967095
+ - 0.052321594
+ - 0.0033964845
+ - 0.00002534854
+ - 0.000054732038
+ - 0.501897
+ - 0.0005195427
+ - 0.0055399244
+ - 0.3676876
+ - 0.038988654
+ - 0.00012567041
+ - 0.0005523181
+ laughterScore: 0
+ - frameNumber: 239
+ frameDelay: 0
+ Visemes:
+ - 0.029870067
+ - 0.0022120262
+ - 0.000069619324
+ - 0.0037468905
+ - 0.14850712
+ - 0.004809573
+ - 0.000041892337
+ - 0.00007017732
+ - 0.5131308
+ - 0.00048560422
+ - 0.0066229524
+ - 0.25842008
+ - 0.029684285
+ - 0.00073927856
+ - 0.00158963
+ laughterScore: 0
+ - frameNumber: 240
+ frameDelay: 0
+ Visemes:
+ - 0.043401316
+ - 0.0034254617
+ - 0.0000895784
+ - 0.0029911723
+ - 0.12133361
+ - 0.0047282614
+ - 0.00005737649
+ - 0.00007724867
+ - 0.4034106
+ - 0.0011495075
+ - 0.13336053
+ - 0.18165906
+ - 0.0334137
+ - 0.0485512
+ - 0.02235136
+ laughterScore: 0
+ - frameNumber: 241
+ frameDelay: 0
+ Visemes:
+ - 0.039466117
+ - 0.0048956783
+ - 0.0010848314
+ - 0.0022212053
+ - 0.08919618
+ - 0.0066572754
+ - 0.00004763169
+ - 0.0001089196
+ - 0.35374314
+ - 0.0022643523
+ - 0.22455338
+ - 0.12735967
+ - 0.030381601
+ - 0.05480496
+ - 0.06321506
+ laughterScore: 0
+ - frameNumber: 242
+ frameDelay: 0
+ Visemes:
+ - 0.03103392
+ - 0.007079563
+ - 0.0036151933
+ - 0.0016229204
+ - 0.06310504
+ - 0.0053038914
+ - 0.00003895043
+ - 0.00008730008
+ - 0.43678427
+ - 0.0038844142
+ - 0.16467276
+ - 0.089188725
+ - 0.021591736
+ - 0.043657728
+ - 0.12833361
+ laughterScore: 0
+ - frameNumber: 243
+ frameDelay: 0
+ Visemes:
+ - 0.024926612
+ - 0.0061619845
+ - 0.002928348
+ - 0.0012367814
+ - 0.044507883
+ - 0.004253405
+ - 0.00003467765
+ - 0.00006943236
+ - 0.5105413
+ - 0.0036323979
+ - 0.11607643
+ - 0.06246592
+ - 0.015387868
+ - 0.03568051
+ - 0.17209642
+ laughterScore: 0
+ - frameNumber: 244
+ frameDelay: 0
+ Visemes:
+ - 0.020295883
+ - 0.004547037
+ - 0.00238516
+ - 0.0011806922
+ - 0.031244453
+ - 0.0033398024
+ - 0.000030334224
+ - 0.000057808153
+ - 0.60077095
+ - 0.0039058328
+ - 0.08171512
+ - 0.04410648
+ - 0.011110524
+ - 0.027104361
+ - 0.16820557
+ laughterScore: 0
+ - frameNumber: 245
+ frameDelay: 0
+ Visemes:
+ - 0.016327994
+ - 0.0032276423
+ - 0.0016845971
+ - 0.0011858249
+ - 0.022013409
+ - 0.0026104823
+ - 0.000024827623
+ - 0.00004623836
+ - 0.6913118
+ - 0.0032775821
+ - 0.078180596
+ - 0.033731315
+ - 0.008616304
+ - 0.019383028
+ - 0.118378356
+ laughterScore: 0
+ - frameNumber: 246
+ frameDelay: 0
+ Visemes:
+ - 0.018485328
+ - 0.002414952
+ - 0.0012286772
+ - 0.001456293
+ - 0.01591398
+ - 0.0027784756
+ - 0.000028511218
+ - 0.000042941618
+ - 0.49554026
+ - 0.002713325
+ - 0.17570993
+ - 0.1794779
+ - 0.0065743453
+ - 0.014606319
+ - 0.08302876
+ laughterScore: 0
+ - frameNumber: 247
+ frameDelay: 0
+ Visemes:
+ - 0.01830528
+ - 0.0017265698
+ - 0.00088619284
+ - 0.0011802791
+ - 0.011825501
+ - 0.0028099234
+ - 0.000025594718
+ - 0.000038222628
+ - 0.3482815
+ - 0.0023986993
+ - 0.25336674
+ - 0.2853909
+ - 0.004785352
+ - 0.010835488
+ - 0.058143776
+ laughterScore: 0
+ - frameNumber: 248
+ frameDelay: 0
+ Visemes:
+ - 0.018293908
+ - 0.0012594832
+ - 0.00064257777
+ - 0.00087485387
+ - 0.009240047
+ - 0.002225386
+ - 0.000045619126
+ - 0.0000440758
+ - 0.24443236
+ - 0.0019710902
+ - 0.34244767
+ - 0.32599026
+ - 0.0035191448
+ - 0.008269228
+ - 0.040744342
+ laughterScore: 0
+ - frameNumber: 249
+ frameDelay: 0
+ Visemes:
+ - 0.019423943
+ - 0.0009775888
+ - 0.0005961142
+ - 0.0006317709
+ - 0.007597317
+ - 0.0025844947
+ - 0.000248795
+ - 0.000088934394
+ - 0.17151298
+ - 0.0017413053
+ - 0.4813063
+ - 0.27597067
+ - 0.002812636
+ - 0.005950154
+ - 0.028557017
+ laughterScore: 0
+ - frameNumber: 250
+ frameDelay: 0
+ Visemes:
+ - 0.020520318
+ - 0.0011153359
+ - 0.0010087258
+ - 0.0010586061
+ - 0.029984336
+ - 0.004196898
+ - 0.0041871937
+ - 0.00032079418
+ - 0.12190558
+ - 0.0025234441
+ - 0.5865551
+ - 0.19825488
+ - 0.003523808
+ - 0.0043944987
+ - 0.020450497
+ laughterScore: 0
+ - frameNumber: 251
+ frameDelay: 0
+ Visemes:
+ - 0.023406314
+ - 0.002891234
+ - 0.0027433957
+ - 0.007035007
+ - 0.11922777
+ - 0.009452555
+ - 0.048829943
+ - 0.023834229
+ - 0.09052837
+ - 0.0022294018
+ - 0.49911535
+ - 0.147315
+ - 0.005163301
+ - 0.0032612518
+ - 0.01496693
+ laughterScore: 0
+ - frameNumber: 252
+ frameDelay: 0
+ Visemes:
+ - 0.027839646
+ - 0.0028605615
+ - 0.003259501
+ - 0.006926626
+ - 0.12141367
+ - 0.024063183
+ - 0.036322962
+ - 0.22776556
+ - 0.063766755
+ - 0.0016122372
+ - 0.36394465
+ - 0.10349585
+ - 0.003783647
+ - 0.002309925
+ - 0.010635229
+ laughterScore: 0
+ - frameNumber: 253
+ frameDelay: 0
+ Visemes:
+ - 0.037460923
+ - 0.0028181013
+ - 0.0029138965
+ - 0.0059345905
+ - 0.11970776
+ - 0.038379226
+ - 0.027610766
+ - 0.37357622
+ - 0.045016415
+ - 0.0011533408
+ - 0.26083085
+ - 0.07263405
+ - 0.0028046933
+ - 0.001651565
+ - 0.0075075557
+ laughterScore: 0
+ - frameNumber: 254
+ frameDelay: 0
+ Visemes:
+ - 0.043385733
+ - 0.002507641
+ - 0.0024314297
+ - 0.0075426064
+ - 0.09571524
+ - 0.04229414
+ - 0.019790597
+ - 0.50519717
+ - 0.033636082
+ - 0.00084837194
+ - 0.18519315
+ - 0.051757257
+ - 0.0024742717
+ - 0.0013687455
+ - 0.005857489
+ laughterScore: 0
+ - frameNumber: 255
+ frameDelay: 0
+ Visemes:
+ - 0.056976013
+ - 0.0027224927
+ - 0.0020664637
+ - 0.032258842
+ - 0.07789696
+ - 0.039031938
+ - 0.0149263395
+ - 0.40839043
+ - 0.03298965
+ - 0.0017073997
+ - 0.1730437
+ - 0.08403298
+ - 0.063831605
+ - 0.0050495737
+ - 0.005075549
+ laughterScore: 0
+ - frameNumber: 256
+ frameDelay: 0
+ Visemes:
+ - 0.044731323
+ - 0.001981987
+ - 0.0015872818
+ - 0.023962537
+ - 0.055379078
+ - 0.027504219
+ - 0.010607506
+ - 0.28884646
+ - 0.023536813
+ - 0.002632345
+ - 0.2538368
+ - 0.08112613
+ - 0.1758321
+ - 0.0047070165
+ - 0.0037283571
+ laughterScore: 0
+ - frameNumber: 257
+ frameDelay: 0
+ Visemes:
+ - 0.036981698
+ - 0.0015194431
+ - 0.0039202846
+ - 0.017176408
+ - 0.04434376
+ - 0.019522117
+ - 0.0074490593
+ - 0.25340623
+ - 0.02308411
+ - 0.002840019
+ - 0.23859435
+ - 0.06671987
+ - 0.27709007
+ - 0.0046348353
+ - 0.0027177283
+ laughterScore: 0
+ - frameNumber: 258
+ frameDelay: 0
+ Visemes:
+ - 0.030117288
+ - 0.0011820424
+ - 0.00495
+ - 0.013067119
+ - 0.045222312
+ - 0.013828682
+ - 0.005250913
+ - 0.43432504
+ - 0.01790139
+ - 0.002128859
+ - 0.1746095
+ - 0.046909567
+ - 0.20534466
+ - 0.0032512834
+ - 0.0019113417
+ laughterScore: 0
+ - frameNumber: 259
+ frameDelay: 0
+ Visemes:
+ - 0.02406579
+ - 0.00089061866
+ - 0.0040738345
+ - 0.016031595
+ - 0.036699843
+ - 0.00980986
+ - 0.0038427394
+ - 0.5856364
+ - 0.0133678075
+ - 0.0015499524
+ - 0.122689895
+ - 0.03291175
+ - 0.14480399
+ - 0.0022796064
+ - 0.0013463715
+ laughterScore: 0
+ - frameNumber: 260
+ frameDelay: 0
+ Visemes:
+ - 0.021722734
+ - 0.0006871574
+ - 0.0029265448
+ - 0.1425238
+ - 0.030507095
+ - 0.007758148
+ - 0.0028090307
+ - 0.52981365
+ - 0.012836771
+ - 0.0011152339
+ - 0.09506002
+ - 0.026541883
+ - 0.123077795
+ - 0.0016332878
+ - 0.0009869136
+ laughterScore: 0
+ - frameNumber: 261
+ frameDelay: 0
+ Visemes:
+ - 0.019501477
+ - 0.0006515909
+ - 0.0022267632
+ - 0.116740555
+ - 0.03129938
+ - 0.005657329
+ - 0.0020240676
+ - 0.37194592
+ - 0.010079918
+ - 0.00081215793
+ - 0.08114867
+ - 0.20235325
+ - 0.15364623
+ - 0.0011602154
+ - 0.0007525476
+ laughterScore: 0
+ - frameNumber: 262
+ frameDelay: 0
+ Visemes:
+ - 0.018499384
+ - 0.00052131334
+ - 0.0017343959
+ - 0.08190186
+ - 0.02278023
+ - 0.004214017
+ - 0.0014451753
+ - 0.26048446
+ - 0.009075224
+ - 0.00061937043
+ - 0.07518843
+ - 0.3468738
+ - 0.17516124
+ - 0.0009293089
+ - 0.0005718611
+ laughterScore: 0
+ - frameNumber: 263
+ frameDelay: 0
+ Visemes:
+ - 0.026770316
+ - 0.0004903988
+ - 0.0016184615
+ - 0.05745194
+ - 0.030237509
+ - 0.028137965
+ - 0.0010909087
+ - 0.1828092
+ - 0.02006734
+ - 0.00070868136
+ - 0.10540923
+ - 0.40938428
+ - 0.13444225
+ - 0.0009230082
+ - 0.00045853909
+ laughterScore: 0
+ - frameNumber: 264
+ frameDelay: 0
+ Visemes:
+ - 0.03819064
+ - 0.0010648523
+ - 0.0025979362
+ - 0.040564157
+ - 0.06492475
+ - 0.051412735
+ - 0.002391638
+ - 0.13000794
+ - 0.03729813
+ - 0.0011021595
+ - 0.0788812
+ - 0.39282763
+ - 0.15719165
+ - 0.0008673009
+ - 0.00067732116
+ laughterScore: 0
+ - frameNumber: 265
+ frameDelay: 0
+ Visemes:
+ - 0.04068778
+ - 0.0029816309
+ - 0.0040371222
+ - 0.028548477
+ - 0.055503566
+ - 0.058684833
+ - 0.0072002597
+ - 0.092048876
+ - 0.029350128
+ - 0.0011255807
+ - 0.057388812
+ - 0.31203425
+ - 0.30779195
+ - 0.00074068055
+ - 0.0018760859
+ laughterScore: 0
+ - frameNumber: 266
+ frameDelay: 0
+ Visemes:
+ - 0.042945236
+ - 0.0028944022
+ - 0.0034785566
+ - 0.020216182
+ - 0.04602851
+ - 0.07394999
+ - 0.0069827302
+ - 0.06507875
+ - 0.021434736
+ - 0.0009891791
+ - 0.04202533
+ - 0.2241069
+ - 0.44645572
+ - 0.00054775417
+ - 0.00286605
+ laughterScore: 0
+ - frameNumber: 267
+ frameDelay: 0
+ Visemes:
+ - 0.045084056
+ - 0.0022643383
+ - 0.0024720766
+ - 0.014438972
+ - 0.032847047
+ - 0.17512292
+ - 0.005029748
+ - 0.045684107
+ - 0.01521047
+ - 0.0007642405
+ - 0.029672995
+ - 0.15749435
+ - 0.46281424
+ - 0.00040209937
+ - 0.010698341
+ laughterScore: 0
+ - frameNumber: 268
+ frameDelay: 0
+ Visemes:
+ - 0.05013852
+ - 0.0018823957
+ - 0.0017647631
+ - 0.0104106665
+ - 0.023614218
+ - 0.20494871
+ - 0.0036345627
+ - 0.032112166
+ - 0.010789451
+ - 0.00061825546
+ - 0.02108473
+ - 0.11126471
+ - 0.50677216
+ - 0.0003011021
+ - 0.020663613
+ laughterScore: 0
+ - frameNumber: 269
+ frameDelay: 0
+ Visemes:
+ - 0.049727466
+ - 0.0014090433
+ - 0.0012613034
+ - 0.0074192663
+ - 0.01722795
+ - 0.15802437
+ - 0.0026081768
+ - 0.022647984
+ - 0.0077200867
+ - 0.00048156118
+ - 0.015088003
+ - 0.079384506
+ - 0.6012571
+ - 0.00023621756
+ - 0.03550698
+ laughterScore: 0
+ - frameNumber: 270
+ frameDelay: 0
+ Visemes:
+ - 0.039648194
+ - 0.0010131848
+ - 0.00090273534
+ - 0.0052261273
+ - 0.012265221
+ - 0.11140329
+ - 0.0018451306
+ - 0.015951633
+ - 0.005467065
+ - 0.0003590408
+ - 0.010647296
+ - 0.056172747
+ - 0.70102036
+ - 0.00017273535
+ - 0.03790523
+ laughterScore: 0
+ - frameNumber: 271
+ frameDelay: 0
+ Visemes:
+ - 0.030295452
+ - 0.00072161976
+ - 0.0006419324
+ - 0.0036727805
+ - 0.008654082
+ - 0.07811944
+ - 0.0013037773
+ - 0.0112141995
+ - 0.0038451063
+ - 0.00026806447
+ - 0.007479856
+ - 0.03961282
+ - 0.7739269
+ - 0.00012444882
+ - 0.040119536
+ laughterScore: 0
+ - frameNumber: 272
+ frameDelay: 0
+ Visemes:
+ - 0.02328233
+ - 0.00050895277
+ - 0.00051380397
+ - 0.0025842823
+ - 0.0061018164
+ - 0.054736584
+ - 0.000945516
+ - 0.007902137
+ - 0.0026996187
+ - 0.0002114555
+ - 0.005255122
+ - 0.027954418
+ - 0.8023628
+ - 0.00009110522
+ - 0.0648501
+ laughterScore: 0
+ - frameNumber: 273
+ frameDelay: 0
+ Visemes:
+ - 0.0209785
+ - 0.00036213204
+ - 0.0006430604
+ - 0.0018753465
+ - 0.0044666026
+ - 0.03839473
+ - 0.0007513737
+ - 0.0057713916
+ - 0.0019234156
+ - 0.00040210033
+ - 0.0038062474
+ - 0.020029046
+ - 0.6557579
+ - 0.00010356812
+ - 0.24473464
+ laughterScore: 0
+ - frameNumber: 274
+ frameDelay: 0
+ Visemes:
+ - 0.01741009
+ - 0.00026184676
+ - 0.0010629216
+ - 0.0015725922
+ - 0.0038006552
+ - 0.026912961
+ - 0.0006350352
+ - 0.02735963
+ - 0.0013775869
+ - 0.0029426776
+ - 0.0072031394
+ - 0.014354663
+ - 0.5075527
+ - 0.00015791188
+ - 0.38739562
+ laughterScore: 0
+ - frameNumber: 275
+ frameDelay: 0
+ Visemes:
+ - 0.014118018
+ - 0.00023679188
+ - 0.0013908077
+ - 0.0015333542
+ - 0.0046084654
+ - 0.018997535
+ - 0.000469246
+ - 0.30547762
+ - 0.00100153
+ - 0.002091513
+ - 0.005673629
+ - 0.010063269
+ - 0.35631603
+ - 0.00011339346
+ - 0.27790883
+ laughterScore: 0
+ - frameNumber: 276
+ frameDelay: 0
+ Visemes:
+ - 0.012763882
+ - 0.00019852594
+ - 0.0010079795
+ - 0.0019548174
+ - 0.005357709
+ - 0.013691758
+ - 0.0004033634
+ - 0.5054157
+ - 0.00073838414
+ - 0.0014817787
+ - 0.004231422
+ - 0.0070647737
+ - 0.2510131
+ - 0.00008427754
+ - 0.19459255
+ laughterScore: 0
+ - frameNumber: 277
+ frameDelay: 0
+ Visemes:
+ - 0.01576478
+ - 0.00021328562
+ - 0.00092057034
+ - 0.0048598116
+ - 0.01675812
+ - 0.033573274
+ - 0.00067618303
+ - 0.59749633
+ - 0.0008874693
+ - 0.0010542787
+ - 0.0037559874
+ - 0.0052771615
+ - 0.18241836
+ - 0.000083060586
+ - 0.13626134
+ laughterScore: 0
+ - frameNumber: 278
+ frameDelay: 0
+ Visemes:
+ - 0.02709731
+ - 0.003285167
+ - 0.002257347
+ - 0.01786938
+ - 0.022781596
+ - 0.03717843
+ - 0.0015159426
+ - 0.5311132
+ - 0.010019699
+ - 0.0037998497
+ - 0.054782216
+ - 0.0055228546
+ - 0.1475399
+ - 0.0015444832
+ - 0.13369259
+ laughterScore: 0
+ - frameNumber: 279
+ frameDelay: 0
+ Visemes:
+ - 0.041543163
+ - 0.0035642458
+ - 0.0019800942
+ - 0.018790169
+ - 0.021972176
+ - 0.07701641
+ - 0.0031649848
+ - 0.3758985
+ - 0.00893053
+ - 0.10241389
+ - 0.07931296
+ - 0.015410455
+ - 0.12811899
+ - 0.012371318
+ - 0.109512076
+ laughterScore: 0
+ - frameNumber: 280
+ frameDelay: 0
+ Visemes:
+ - 0.036640756
+ - 0.0031206904
+ - 0.0019436951
+ - 0.013918792
+ - 0.016535655
+ - 0.054603036
+ - 0.0022399358
+ - 0.26319066
+ - 0.006637836
+ - 0.28003722
+ - 0.07528366
+ - 0.031416837
+ - 0.097542524
+ - 0.03451771
+ - 0.08237098
+ laughterScore: 0
+ - frameNumber: 281
+ frameDelay: 0
+ Visemes:
+ - 0.033078987
+ - 0.0026748683
+ - 0.0027190885
+ - 0.010324935
+ - 0.012383252
+ - 0.03865341
+ - 0.001571754
+ - 0.18426932
+ - 0.0059789484
+ - 0.46008065
+ - 0.06170264
+ - 0.026652448
+ - 0.073605314
+ - 0.027181108
+ - 0.059123263
+ laughterScore: 0
+ - frameNumber: 282
+ frameDelay: 0
+ Visemes:
+ - 0.034310408
+ - 0.0022744243
+ - 0.0023988648
+ - 0.0087234685
+ - 0.010534706
+ - 0.02866103
+ - 0.0012718062
+ - 0.13056816
+ - 0.011991663
+ - 0.53098506
+ - 0.059671596
+ - 0.023942886
+ - 0.08740357
+ - 0.023448158
+ - 0.0438142
+ laughterScore: 0
+ - frameNumber: 283
+ frameDelay: 0
+ Visemes:
+ - 0.031797558
+ - 0.001730126
+ - 0.002343716
+ - 0.006633193
+ - 0.010035345
+ - 0.02014818
+ - 0.0017062852
+ - 0.18477479
+ - 0.010022836
+ - 0.4805796
+ - 0.10011722
+ - 0.018159613
+ - 0.08327367
+ - 0.016798709
+ - 0.031879112
+ laughterScore: 0
+ - frameNumber: 284
+ frameDelay: 0
+ Visemes:
+ - 0.027365794
+ - 0.0015139612
+ - 0.0025513077
+ - 0.0058268677
+ - 0.015960576
+ - 0.014356237
+ - 0.0012812553
+ - 0.3983406
+ - 0.0079475995
+ - 0.34041104
+ - 0.07492157
+ - 0.013204278
+ - 0.062069066
+ - 0.011770357
+ - 0.02247945
+ laughterScore: 0
+ - frameNumber: 285
+ frameDelay: 0
+ Visemes:
+ - 0.024310343
+ - 0.0015812479
+ - 0.002034224
+ - 0.009057093
+ - 0.019213099
+ - 0.0107463645
+ - 0.0012522843
+ - 0.55405116
+ - 0.0059217955
+ - 0.24026197
+ - 0.053776473
+ - 0.009470289
+ - 0.044239357
+ - 0.008278693
+ - 0.01580552
+ laughterScore: 0
+ - frameNumber: 286
+ frameDelay: 0
+ Visemes:
+ - 0.028905053
+ - 0.0047460785
+ - 0.0021061243
+ - 0.024438603
+ - 0.044856206
+ - 0.008369204
+ - 0.0015022804
+ - 0.6156679
+ - 0.007419642
+ - 0.1688063
+ - 0.038207132
+ - 0.0067354897
+ - 0.03115319
+ - 0.005814196
+ - 0.011272506
+ laughterScore: 0
+ - frameNumber: 287
+ frameDelay: 0
+ Visemes:
+ - 0.04111862
+ - 0.14329629
+ - 0.0035985997
+ - 0.020416088
+ - 0.06076695
+ - 0.0070677446
+ - 0.0013428425
+ - 0.52770436
+ - 0.0057501155
+ - 0.1185733
+ - 0.030745212
+ - 0.0047923382
+ - 0.022352684
+ - 0.004082122
+ - 0.008392686
+ laughterScore: 0
+ - frameNumber: 288
+ frameDelay: 0
+ Visemes:
+ - 0.038519043
+ - 0.3476149
+ - 0.0044428934
+ - 0.015089102
+ - 0.059874874
+ - 0.0052456027
+ - 0.0010804341
+ - 0.38472575
+ - 0.004203372
+ - 0.08305103
+ - 0.028008671
+ - 0.003418112
+ - 0.015873438
+ - 0.0028775455
+ - 0.005975182
+ laughterScore: 0
+ - frameNumber: 289
+ frameDelay: 0
+ Visemes:
+ - 0.03357348
+ - 0.5170706
+ - 0.01029375
+ - 0.011252288
+ - 0.048671983
+ - 0.0038571067
+ - 0.00083640474
+ - 0.2725049
+ - 0.002989615
+ - 0.058162242
+ - 0.02070301
+ - 0.002479233
+ - 0.011302434
+ - 0.0020412118
+ - 0.0042617004
+ laughterScore: 0
+ - frameNumber: 290
+ frameDelay: 0
+ Visemes:
+ - 0.036863286
+ - 0.59324586
+ - 0.05219796
+ - 0.008154319
+ - 0.036584012
+ - 0.0028159616
+ - 0.000603784
+ - 0.19657695
+ - 0.002182158
+ - 0.040910155
+ - 0.015263632
+ - 0.0017809835
+ - 0.00807178
+ - 0.0015145384
+ - 0.0032345708
+ laughterScore: 0
+ - frameNumber: 291
+ frameDelay: 0
+ Visemes:
+ - 0.032053985
+ - 0.60914737
+ - 0.09701046
+ - 0.0076401057
+ - 0.026517646
+ - 0.0021456885
+ - 0.00043438785
+ - 0.14148153
+ - 0.013947327
+ - 0.03890844
+ - 0.013979472
+ - 0.0014333954
+ - 0.006080909
+ - 0.0018958123
+ - 0.0073233983
+ laughterScore: 0
+ - frameNumber: 292
+ frameDelay: 0
+ Visemes:
+ - 0.026088782
+ - 0.44709137
+ - 0.116282344
+ - 0.005376798
+ - 0.018631186
+ - 0.0015652761
+ - 0.0003052923
+ - 0.09915525
+ - 0.022783093
+ - 0.027762037
+ - 0.01686717
+ - 0.0011324803
+ - 0.0065320944
+ - 0.039493393
+ - 0.17093341
+ laughterScore: 0
+ - frameNumber: 293
+ frameDelay: 0
+ Visemes:
+ - 0.021880936
+ - 0.31409085
+ - 0.08214882
+ - 0.0037697847
+ - 0.013096956
+ - 0.0011492204
+ - 0.00021461082
+ - 0.06941397
+ - 0.020621495
+ - 0.019737992
+ - 0.039482422
+ - 0.0013490093
+ - 0.010611014
+ - 0.09634794
+ - 0.30608496
+ laughterScore: 0
+ - frameNumber: 294
+ frameDelay: 0
+ Visemes:
+ - 0.018736618
+ - 0.22046092
+ - 0.057631098
+ - 0.0026428332
+ - 0.009398883
+ - 0.00087003835
+ - 0.0001521028
+ - 0.048593078
+ - 0.021365648
+ - 0.014406362
+ - 0.14164492
+ - 0.0011985798
+ - 0.00887249
+ - 0.1658208
+ - 0.28820565
+ laughterScore: 0
+ - frameNumber: 295
+ frameDelay: 0
+ Visemes:
+ - 0.016770083
+ - 0.15466274
+ - 0.04036418
+ - 0.0018548131
+ - 0.007003463
+ - 0.00071776443
+ - 0.00010741227
+ - 0.034017477
+ - 0.056822658
+ - 0.010335244
+ - 0.2612512
+ - 0.0012904104
+ - 0.006591249
+ - 0.1593898
+ - 0.24882153
+ laughterScore: 0
+ - frameNumber: 296
+ frameDelay: 0
+ Visemes:
+ - 0.014159568
+ - 0.10838929
+ - 0.028298808
+ - 0.001303544
+ - 0.0052058133
+ - 0.00067100377
+ - 0.00007629629
+ - 0.023819882
+ - 0.21540394
+ - 0.007898219
+ - 0.19284278
+ - 0.0009421578
+ - 0.0046458608
+ - 0.212113
+ - 0.18422987
+ laughterScore: 0
+ - frameNumber: 297
+ frameDelay: 0
+ Visemes:
+ - 0.017670218
+ - 0.07619395
+ - 0.020208692
+ - 0.001021356
+ - 0.004141136
+ - 0.001191179
+ - 0.000080729966
+ - 0.016702713
+ - 0.30901238
+ - 0.017162507
+ - 0.1364717
+ - 0.0008989897
+ - 0.003546014
+ - 0.26161242
+ - 0.13408604
+ laughterScore: 0
+ - frameNumber: 298
+ frameDelay: 0
+ Visemes:
+ - 0.020696975
+ - 0.053610753
+ - 0.015211448
+ - 0.0020686192
+ - 0.0036660396
+ - 0.0016460207
+ - 0.00017744863
+ - 0.011721885
+ - 0.35540056
+ - 0.030229956
+ - 0.10286328
+ - 0.004892401
+ - 0.007295622
+ - 0.29131424
+ - 0.09920481
+ laughterScore: 0
+ - frameNumber: 299
+ frameDelay: 0
+ Visemes:
+ - 0.017090857
+ - 0.037594795
+ - 0.01073559
+ - 0.0019263098
+ - 0.0034728171
+ - 0.0014818982
+ - 0.00017798728
+ - 0.008228154
+ - 0.26352808
+ - 0.0328202
+ - 0.076887585
+ - 0.009267624
+ - 0.0079575125
+ - 0.45824575
+ - 0.070584856
+ laughterScore: 0
+ - frameNumber: 300
+ frameDelay: 0
+ Visemes:
+ - 0.014460519
+ - 0.026341146
+ - 0.0075469157
+ - 0.0017444093
+ - 0.0029473635
+ - 0.0012471811
+ - 0.00022256104
+ - 0.005801747
+ - 0.18705206
+ - 0.028985754
+ - 0.061749756
+ - 0.012477454
+ - 0.010972822
+ - 0.58802485
+ - 0.050425477
+ laughterScore: 0
+ - frameNumber: 301
+ frameDelay: 0
+ Visemes:
+ - 0.0114453025
+ - 0.018443678
+ - 0.005296147
+ - 0.0013071371
+ - 0.0022448567
+ - 0.0009098342
+ - 0.00018427499
+ - 0.0040873014
+ - 0.13123749
+ - 0.02202699
+ - 0.04691312
+ - 0.010951222
+ - 0.010525577
+ - 0.6988605
+ - 0.03556655
+ laughterScore: 0
+ - frameNumber: 302
+ frameDelay: 0
+ Visemes:
+ - 0.009426263
+ - 0.012914232
+ - 0.003722653
+ - 0.00097017764
+ - 0.0018147092
+ - 0.0006708983
+ - 0.00015797306
+ - 0.0029592759
+ - 0.09198913
+ - 0.016173057
+ - 0.037609458
+ - 0.010662299
+ - 0.008655107
+ - 0.7773017
+ - 0.024973024
+ laughterScore: 0
+ - frameNumber: 303
+ frameDelay: 0
+ Visemes:
+ - 0.007136979
+ - 0.009041298
+ - 0.0026133433
+ - 0.00069504016
+ - 0.0013524174
+ - 0.00048357874
+ - 0.00013103623
+ - 0.0022284891
+ - 0.06442243
+ - 0.011467044
+ - 0.02742048
+ - 0.0108505795
+ - 0.006573715
+ - 0.83808637
+ - 0.017497167
+ laughterScore: 0
+ - frameNumber: 304
+ frameDelay: 0
+ Visemes:
+ - 0.00620465
+ - 0.0063346447
+ - 0.0018683621
+ - 0.0005187945
+ - 0.0012525226
+ - 0.0003694598
+ - 0.00024708224
+ - 0.004563287
+ - 0.045234527
+ - 0.008249142
+ - 0.020640362
+ - 0.013622719
+ - 0.005863045
+ - 0.87268955
+ - 0.012341834
+ laughterScore: 0
+ - frameNumber: 305
+ frameDelay: 0
+ Visemes:
+ - 0.007178098
+ - 0.004439834
+ - 0.0014122442
+ - 0.0014236897
+ - 0.0025296519
+ - 0.0002915465
+ - 0.00018342889
+ - 0.10798424
+ - 0.0318184
+ - 0.006178184
+ - 0.01493411
+ - 0.06946432
+ - 0.01731841
+ - 0.7261119
+ - 0.008731984
+ laughterScore: 0
+ - frameNumber: 306
+ frameDelay: 0
+ Visemes:
+ - 0.008694702
+ - 0.0031186803
+ - 0.0012292056
+ - 0.0021997425
+ - 0.0128562525
+ - 0.00029982618
+ - 0.00020727789
+ - 0.32127255
+ - 0.022473343
+ - 0.0043932367
+ - 0.010680924
+ - 0.05269284
+ - 0.012699848
+ - 0.541042
+ - 0.006139615
+ laughterScore: 0
+ - frameNumber: 307
+ frameDelay: 0
+ Visemes:
+ - 0.011257045
+ - 0.0021900092
+ - 0.0010891822
+ - 0.0026310938
+ - 0.011984348
+ - 0.00026751048
+ - 0.00019152087
+ - 0.51128656
+ - 0.015753973
+ - 0.0030861006
+ - 0.0076064225
+ - 0.039314702
+ - 0.009034332
+ - 0.38000238
+ - 0.0043048235
+ laughterScore: 0
+ - frameNumber: 308
+ frameDelay: 0
+ Visemes:
+ - 0.013832163
+ - 0.0015426318
+ - 0.0008390093
+ - 0.002688259
+ - 0.01018788
+ - 0.00025116303
+ - 0.00016815375
+ - 0.6448604
+ - 0.011068356
+ - 0.002165784
+ - 0.005674866
+ - 0.029381344
+ - 0.006706618
+ - 0.267606
+ - 0.0030274277
+ laughterScore: 0
+ - frameNumber: 309
+ frameDelay: 0
+ Visemes:
+ - 0.018540092
+ - 0.0011034126
+ - 0.0006308877
+ - 0.002330692
+ - 0.014114829
+ - 0.0003018041
+ - 0.00016760323
+ - 0.73320675
+ - 0.007842506
+ - 0.0015329685
+ - 0.004205007
+ - 0.021439781
+ - 0.0050578383
+ - 0.18739346
+ - 0.0021324449
+ laughterScore: 0
+ - frameNumber: 310
+ frameDelay: 0
+ Visemes:
+ - 0.031740736
+ - 0.00088475016
+ - 0.0005366364
+ - 0.0025442308
+ - 0.027627766
+ - 0.00043080546
+ - 0.0001539633
+ - 0.7736145
+ - 0.0060832016
+ - 0.0011077409
+ - 0.0031588622
+ - 0.015301279
+ - 0.0039517474
+ - 0.1313394
+ - 0.0015243514
+ laughterScore: 0
+ - frameNumber: 311
+ frameDelay: 0
+ Visemes:
+ - 0.04281184
+ - 0.0007379382
+ - 0.00046545302
+ - 0.0024717394
+ - 0.033819012
+ - 0.00049461715
+ - 0.0001368932
+ - 0.80349576
+ - 0.004519708
+ - 0.00078281347
+ - 0.0024171139
+ - 0.01091716
+ - 0.0037906459
+ - 0.092009015
+ - 0.001130232
+ laughterScore: 0
+ - frameNumber: 312
+ frameDelay: 0
+ Visemes:
+ - 0.04690221
+ - 0.0007355816
+ - 0.00034283177
+ - 0.005445568
+ - 0.037570734
+ - 0.00070008566
+ - 0.00018301919
+ - 0.70497197
+ - 0.0051079104
+ - 0.000722404
+ - 0.02355848
+ - 0.024380649
+ - 0.07939097
+ - 0.06818125
+ - 0.0018062379
+ laughterScore: 0
+ - frameNumber: 313
+ frameDelay: 0
+ Visemes:
+ - 0.10330041
+ - 0.00061623956
+ - 0.00031416176
+ - 0.0039692083
+ - 0.032119274
+ - 0.0006966317
+ - 0.00020922616
+ - 0.5149794
+ - 0.003671105
+ - 0.000702221
+ - 0.026243994
+ - 0.11527673
+ - 0.14718965
+ - 0.049308427
+ - 0.0014032507
+ laughterScore: 0
+ - frameNumber: 314
+ frameDelay: 0
+ Visemes:
+ - 0.16920123
+ - 0.00078247103
+ - 0.0005635229
+ - 0.0029201012
+ - 0.04339461
+ - 0.0007047584
+ - 0.00019363264
+ - 0.3888063
+ - 0.0027100341
+ - 0.00052859733
+ - 0.028643377
+ - 0.18488374
+ - 0.13975734
+ - 0.03586754
+ - 0.0010427019
+ laughterScore: 0
+ - frameNumber: 315
+ frameDelay: 0
+ Visemes:
+ - 0.23874258
+ - 0.0007909335
+ - 0.0005214475
+ - 0.0021566807
+ - 0.053165235
+ - 0.00061193004
+ - 0.00028035138
+ - 0.30769598
+ - 0.0020079534
+ - 0.00040725543
+ - 0.030984862
+ - 0.20336021
+ - 0.13219354
+ - 0.026285047
+ - 0.0007959383
+ laughterScore: 0
+ - frameNumber: 316
+ frameDelay: 0
+ Visemes:
+ - 0.17576104
+ - 0.00065121177
+ - 0.00037372598
+ - 0.0016191535
+ - 0.038825374
+ - 0.00076399755
+ - 0.00021115007
+ - 0.21551888
+ - 0.0014226539
+ - 0.00029279874
+ - 0.02768794
+ - 0.41515243
+ - 0.10263224
+ - 0.018525971
+ - 0.00056136824
+ laughterScore: 0
+ - frameNumber: 317
+ frameDelay: 0
+ Visemes:
+ - 0.13116606
+ - 0.0004732573
+ - 0.00026449517
+ - 0.0011866735
+ - 0.02752602
+ - 0.0010395448
+ - 0.0001493978
+ - 0.15087949
+ - 0.0010688022
+ - 0.00021253346
+ - 0.022399982
+ - 0.57752836
+ - 0.07270547
+ - 0.013004116
+ - 0.00039574323
+ laughterScore: 0
+ - frameNumber: 318
+ frameDelay: 0
+ Visemes:
+ - 0.09703179
+ - 0.00034413082
+ - 0.00018578632
+ - 0.00085728697
+ - 0.019531911
+ - 0.0015380792
+ - 0.00010494778
+ - 0.10561669
+ - 0.0018637516
+ - 0.00015921108
+ - 0.016997788
+ - 0.694741
+ - 0.051635098
+ - 0.009113442
+ - 0.00027901697
+ laughterScore: 0
+ - frameNumber: 319
+ frameDelay: 0
+ Visemes:
+ - 0.076296
+ - 0.0002580189
+ - 0.00013178673
+ - 0.0006401708
+ - 0.013870618
+ - 0.0012924351
+ - 0.00007379184
+ - 0.07393365
+ - 0.005184974
+ - 0.00012341526
+ - 0.013115583
+ - 0.77182716
+ - 0.036657803
+ - 0.006395932
+ - 0.00019861021
+ laughterScore: 0
+ - frameNumber: 320
+ frameDelay: 0
+ Visemes:
+ - 0.059916098
+ - 0.00038545334
+ - 0.0001038068
+ - 0.0007213679
+ - 0.0105430735
+ - 0.001022202
+ - 0.000065223154
+ - 0.05180006
+ - 0.13852187
+ - 0.00009679036
+ - 0.01099247
+ - 0.6946995
+ - 0.026425699
+ - 0.004536704
+ - 0.00016969003
+ laughterScore: 0
+ - frameNumber: 321
+ frameDelay: 0
+ Visemes:
+ - 0.0441396
+ - 0.00098795
+ - 0.000089675304
+ - 0.0006205508
+ - 0.0077182767
+ - 0.00076671893
+ - 0.00013897018
+ - 0.036285926
+ - 0.39114305
+ - 0.0000695482
+ - 0.008155503
+ - 0.48795485
+ - 0.018629868
+ - 0.0031779627
+ - 0.000121577265
+ laughterScore: 0
+ - frameNumber: 322
+ frameDelay: 0
+ Visemes:
+ - 0.037733108
+ - 0.002234041
+ - 0.00007148227
+ - 0.0005556926
+ - 0.0068779932
+ - 0.0009861662
+ - 0.00012116097
+ - 0.025415922
+ - 0.5625598
+ - 0.000049525446
+ - 0.005980894
+ - 0.34193528
+ - 0.013164216
+ - 0.002226038
+ - 0.00008869693
+ laughterScore: 0
+ - frameNumber: 323
+ frameDelay: 0
+ Visemes:
+ - 0.033852074
+ - 0.0051942104
+ - 0.000056951252
+ - 0.008489459
+ - 0.012446009
+ - 0.0010865915
+ - 0.00012837228
+ - 0.017818859
+ - 0.6658698
+ - 0.000038041653
+ - 0.004375606
+ - 0.23945324
+ - 0.009554011
+ - 0.0015616314
+ - 0.00007514519
+ laughterScore: 0
+ - frameNumber: 324
+ frameDelay: 0
+ Visemes:
+ - 0.028011352
+ - 0.0061789155
+ - 0.000063095766
+ - 0.028526537
+ - 0.031356573
+ - 0.0012767025
+ - 0.00012611237
+ - 0.012502183
+ - 0.71302253
+ - 0.000046807327
+ - 0.0031995168
+ - 0.16765857
+ - 0.0068519185
+ - 0.0010959742
+ - 0.000083186096
+ laughterScore: 0
+ - frameNumber: 325
+ frameDelay: 0
+ Visemes:
+ - 0.024717726
+ - 0.065177515
+ - 0.0004782727
+ - 0.04424413
+ - 0.03837139
+ - 0.0013318933
+ - 0.00011104654
+ - 0.008780181
+ - 0.69029653
+ - 0.00043819405
+ - 0.0024504801
+ - 0.1173858
+ - 0.004934858
+ - 0.0007693703
+ - 0.00051264383
+ laughterScore: 0
+ - frameNumber: 326
+ frameDelay: 0
+ Visemes:
+ - 0.021620516
+ - 0.2734674
+ - 0.00054037664
+ - 0.06423697
+ - 0.02833528
+ - 0.0009768945
+ - 0.00008169801
+ - 0.0061549493
+ - 0.5144129
+ - 0.00064059
+ - 0.002201608
+ - 0.08222587
+ - 0.003556532
+ - 0.0005473888
+ - 0.0010010981
+ laughterScore: 0
+ - frameNumber: 327
+ frameDelay: 0
+ Visemes:
+ - 0.030852312
+ - 0.1932061
+ - 0.00047530525
+ - 0.11536033
+ - 0.021576865
+ - 0.00094367284
+ - 0.00008658362
+ - 0.0043299412
+ - 0.38893008
+ - 0.000769604
+ - 0.040464956
+ - 0.19754611
+ - 0.0033267792
+ - 0.0012639178
+ - 0.00086747116
+ laughterScore: 0
+ - frameNumber: 328
+ frameDelay: 0
+ Visemes:
+ - 0.029243277
+ - 0.13567996
+ - 0.00038757472
+ - 0.0926918
+ - 0.015382503
+ - 0.00094119756
+ - 0.00007641117
+ - 0.0030377812
+ - 0.27468646
+ - 0.0006836966
+ - 0.049317963
+ - 0.39324033
+ - 0.0025641862
+ - 0.0014321051
+ - 0.00063473615
+ laughterScore: 0
+ - frameNumber: 329
+ frameDelay: 0
+ Visemes:
+ - 0.023571445
+ - 0.09502271
+ - 0.000286767
+ - 0.06510474
+ - 0.011015789
+ - 0.00081673614
+ - 0.00005976347
+ - 0.0021337932
+ - 0.19315967
+ - 0.0005283122
+ - 0.05842813
+ - 0.5463189
+ - 0.0019134404
+ - 0.0011867073
+ - 0.0004531012
+ laughterScore: 0
+ - frameNumber: 330
+ frameDelay: 0
+ Visemes:
+ - 0.020866588
+ - 0.0665889
+ - 0.00021999826
+ - 0.045608267
+ - 0.008510249
+ - 0.0009430564
+ - 0.00006217595
+ - 0.0015194046
+ - 0.13597088
+ - 0.00049513316
+ - 0.06466879
+ - 0.6517043
+ - 0.0015150885
+ - 0.0009974644
+ - 0.0003297061
+ laughterScore: 0
+ - frameNumber: 331
+ frameDelay: 0
+ Visemes:
+ - 0.023186289
+ - 0.047479376
+ - 0.00025829594
+ - 0.031969808
+ - 0.043383572
+ - 0.0008864632
+ - 0.00007930718
+ - 0.0011819927
+ - 0.09667705
+ - 0.00066135335
+ - 0.04962495
+ - 0.7023246
+ - 0.0012243832
+ - 0.00080630067
+ - 0.0002562423
+ laughterScore: 0
+ - frameNumber: 332
+ frameDelay: 0
+ Visemes:
+ - 0.022978997
+ - 0.039118573
+ - 0.00086240127
+ - 0.022703525
+ - 0.06767707
+ - 0.0028816992
+ - 0.000102230246
+ - 0.0019200308
+ - 0.070628285
+ - 0.0008065856
+ - 0.036361273
+ - 0.732213
+ - 0.0009702671
+ - 0.0005938798
+ - 0.0001822191
+ laughterScore: 0
+ - frameNumber: 333
+ frameDelay: 0
+ Visemes:
+ - 0.019435069
+ - 0.2708579
+ - 0.0018005569
+ - 0.016444046
+ - 0.08875475
+ - 0.007682313
+ - 0.00014463454
+ - 0.0016365098
+ - 0.051293477
+ - 0.00073480536
+ - 0.025891652
+ - 0.51403296
+ - 0.00071770384
+ - 0.0004454683
+ - 0.00012819296
+ laughterScore: 0
+ - frameNumber: 334
+ frameDelay: 0
+ Visemes:
+ - 0.021573562
+ - 0.3576138
+ - 0.0023195664
+ - 0.0118468385
+ - 0.16830087
+ - 0.019344214
+ - 0.00032724143
+ - 0.0014703228
+ - 0.036421325
+ - 0.000560139
+ - 0.01893975
+ - 0.3602742
+ - 0.0005683964
+ - 0.00034518645
+ - 0.000094656294
+ laughterScore: 0
+ - frameNumber: 335
+ frameDelay: 0
+ Visemes:
+ - 0.021844732
+ - 0.28346696
+ - 0.0021176739
+ - 0.008693439
+ - 0.3413474
+ - 0.015980965
+ - 0.00043396302
+ - 0.03343532
+ - 0.025527775
+ - 0.00039915656
+ - 0.013563508
+ - 0.25237146
+ - 0.00048754713
+ - 0.00024512972
+ - 0.00008497544
+ laughterScore: 0
+ - frameNumber: 336
+ frameDelay: 0
+ Visemes:
+ - 0.020623762
+ - 0.20202422
+ - 0.0018778509
+ - 0.006196869
+ - 0.317751
+ - 0.011748294
+ - 0.00032023562
+ - 0.23431556
+ - 0.01788607
+ - 0.0002859531
+ - 0.009607438
+ - 0.17670564
+ - 0.00040348817
+ - 0.00017287176
+ - 0.00008071236
+ laughterScore: 0
+ - frameNumber: 337
+ frameDelay: 0
+ Visemes:
+ - 0.017344275
+ - 0.14226374
+ - 0.0014747164
+ - 0.0043911403
+ - 0.22764182
+ - 0.008325075
+ - 0.0002366473
+ - 0.45445824
+ - 0.012532171
+ - 0.00020341386
+ - 0.00690327
+ - 0.12371577
+ - 0.0003200936
+ - 0.00012214591
+ - 0.00006746696
+ laughterScore: 0
+ - frameNumber: 338
+ frameDelay: 0
+ Visemes:
+ - 0.015911303
+ - 0.09985502
+ - 0.0011309286
+ - 0.0031055748
+ - 0.16259995
+ - 0.0060025183
+ - 0.0001837864
+ - 0.6095582
+ - 0.008794253
+ - 0.00015821418
+ - 0.005483098
+ - 0.08666815
+ - 0.00038583702
+ - 0.000092135575
+ - 0.00007098458
+ laughterScore: 0
+ - frameNumber: 339
+ frameDelay: 0
+ Visemes:
+ - 0.02285742
+ - 0.07134585
+ - 0.0010708347
+ - 0.0025985688
+ - 0.12991576
+ - 0.030848365
+ - 0.00015951786
+ - 0.6656749
+ - 0.006548212
+ - 0.0002957848
+ - 0.004560845
+ - 0.061022345
+ - 0.0024953943
+ - 0.00016341955
+ - 0.00044278763
+ laughterScore: 0
+ - frameNumber: 340
+ frameDelay: 0
+ Visemes:
+ - 0.03576882
+ - 0.052128382
+ - 0.0014632011
+ - 0.023971567
+ - 0.2089222
+ - 0.06293409
+ - 0.0001742221
+ - 0.55712664
+ - 0.0058908374
+ - 0.0003852417
+ - 0.0039345426
+ - 0.04319994
+ - 0.0028478596
+ - 0.0003004822
+ - 0.0009520183
+ laughterScore: 0
+ - frameNumber: 341
+ frameDelay: 0
+ Visemes:
+ - 0.031174663
+ - 0.037539832
+ - 0.0011440445
+ - 0.17268366
+ - 0.1844028
+ - 0.045136675
+ - 0.00015484661
+ - 0.44335783
+ - 0.032315932
+ - 0.0003332445
+ - 0.010169465
+ - 0.034616515
+ - 0.004350178
+ - 0.00086763606
+ - 0.0017527423
+ laughterScore: 0
+ - frameNumber: 342
+ frameDelay: 0
+ Visemes:
+ - 0.025204381
+ - 0.026601216
+ - 0.0011255658
+ - 0.12128921
+ - 0.12945934
+ - 0.031629156
+ - 0.000110934845
+ - 0.3103844
+ - 0.02304118
+ - 0.0015945381
+ - 0.28399953
+ - 0.025013823
+ - 0.012052445
+ - 0.0056595467
+ - 0.002834751
+ laughterScore: 0
+ - frameNumber: 343
+ frameDelay: 0
+ Visemes:
+ - 0.019239068
+ - 0.019047864
+ - 0.015747882
+ - 0.085545026
+ - 0.090966105
+ - 0.022189444
+ - 0.00007808678
+ - 0.21730085
+ - 0.01664973
+ - 0.001673287
+ - 0.47424918
+ - 0.017586503
+ - 0.012072439
+ - 0.0052125882
+ - 0.0024419674
+ laughterScore: 0
+ - frameNumber: 344
+ frameDelay: 0
+ Visemes:
+ - 0.017172148
+ - 0.109362654
+ - 0.11961438
+ - 0.06279073
+ - 0.06488367
+ - 0.016537048
+ - 0.00007399575
+ - 0.15227525
+ - 0.0129647255
+ - 0.0013151168
+ - 0.41506162
+ - 0.012320898
+ - 0.008659069
+ - 0.003994644
+ - 0.0029741062
+ laughterScore: 0
+ - frameNumber: 345
+ frameDelay: 0
+ Visemes:
+ - 0.019892357
+ - 0.15922278
+ - 0.26085106
+ - 0.047196455
+ - 0.04701608
+ - 0.013266973
+ - 0.00012371794
+ - 0.10668727
+ - 0.009934189
+ - 0.001187348
+ - 0.31397992
+ - 0.008629281
+ - 0.0063139014
+ - 0.003018063
+ - 0.0026806449
+ laughterScore: 0
+ - frameNumber: 346
+ frameDelay: 0
+ Visemes:
+ - 0.02307675
+ - 0.28395033
+ - 0.282614
+ - 0.03524367
+ - 0.03324742
+ - 0.00947708
+ - 0.00009081828
+ - 0.074694365
+ - 0.009751763
+ - 0.0021483104
+ - 0.22152632
+ - 0.0060459794
+ - 0.004629356
+ - 0.0022170658
+ - 0.011286778
+ laughterScore: 0
+ - frameNumber: 347
+ frameDelay: 0
+ Visemes:
+ - 0.031349156
+ - 0.27617905
+ - 0.29371825
+ - 0.025184875
+ - 0.023507603
+ - 0.007274051
+ - 0.000067190675
+ - 0.05233501
+ - 0.037790403
+ - 0.0017967166
+ - 0.1859798
+ - 0.0049848645
+ - 0.028282207
+ - 0.017788727
+ - 0.013762128
+ laughterScore: 0
+ - frameNumber: 348
+ frameDelay: 0
+ Visemes:
+ - 0.026213288
+ - 0.194066
+ - 0.20768043
+ - 0.017670553
+ - 0.016572103
+ - 0.0051412373
+ - 0.000047498885
+ - 0.036637787
+ - 0.054866012
+ - 0.0017371172
+ - 0.3085552
+ - 0.0046710535
+ - 0.050841514
+ - 0.046161897
+ - 0.029138342
+ laughterScore: 0
+ - frameNumber: 349
+ frameDelay: 0
+ Visemes:
+ - 0.030439999
+ - 0.13621604
+ - 0.14583892
+ - 0.012420777
+ - 0.012740195
+ - 0.0036352829
+ - 0.00003473114
+ - 0.025671035
+ - 0.14035395
+ - 0.0016404493
+ - 0.27441952
+ - 0.003890483
+ - 0.03897702
+ - 0.10549961
+ - 0.068222
+ laughterScore: 0
+ - frameNumber: 350
+ frameDelay: 0
+ Visemes:
+ - 0.025779737
+ - 0.09539912
+ - 0.10210996
+ - 0.008757933
+ - 0.009288063
+ - 0.002582336
+ - 0.000032331936
+ - 0.01798526
+ - 0.24667111
+ - 0.0042652916
+ - 0.19225879
+ - 0.002745583
+ - 0.027370574
+ - 0.21638343
+ - 0.04837048
+ laughterScore: 0
+ - frameNumber: 351
+ frameDelay: 0
+ Visemes:
+ - 0.02001303
+ - 0.06681695
+ - 0.07150841
+ - 0.0062259748
+ - 0.0066564735
+ - 0.0018850365
+ - 0.00003538922
+ - 0.012597158
+ - 0.19867612
+ - 0.017569441
+ - 0.13481045
+ - 0.0020155038
+ - 0.01938317
+ - 0.40719405
+ - 0.034612816
+ laughterScore: 0
+ - frameNumber: 352
+ frameDelay: 0
+ Visemes:
+ - 0.014552182
+ - 0.0467751
+ - 0.050060414
+ - 0.004399205
+ - 0.004720505
+ - 0.0013364917
+ - 0.00004420886
+ - 0.008821373
+ - 0.14105475
+ - 0.013406333
+ - 0.094505854
+ - 0.002048656
+ - 0.014265463
+ - 0.5793985
+ - 0.024610948
+ laughterScore: 0
+ - frameNumber: 353
+ frameDelay: 0
+ Visemes:
+ - 0.010850308
+ - 0.032748643
+ - 0.0350534
+ - 0.0032129707
+ - 0.0034993866
+ - 0.0010132414
+ - 0.00006471105
+ - 0.006186536
+ - 0.09998317
+ - 0.013869012
+ - 0.06643964
+ - 0.0046993317
+ - 0.011692945
+ - 0.6932803
+ - 0.017406417
+ laughterScore: 0
+ - frameNumber: 354
+ frameDelay: 0
+ Visemes:
+ - 0.00801064
+ - 0.022925569
+ - 0.024573913
+ - 0.003900143
+ - 0.002897867
+ - 0.0010480176
+ - 0.0004949595
+ - 0.0048847846
+ - 0.07012256
+ - 0.01497161
+ - 0.046719152
+ - 0.0039229994
+ - 0.01122349
+ - 0.7721139
+ - 0.0121903485
+ laughterScore: 0
+ - frameNumber: 355
+ frameDelay: 0
+ Visemes:
+ - 0.005977743
+ - 0.016048864
+ - 0.01722768
+ - 0.0033854987
+ - 0.002386383
+ - 0.0007892681
+ - 0.0004909989
+ - 0.041036088
+ - 0.049133312
+ - 0.011299756
+ - 0.032768022
+ - 0.0028833495
+ - 0.00828768
+ - 0.7997486
+ - 0.0085367365
+ laughterScore: 0
+ - frameNumber: 356
+ frameDelay: 0
+ Visemes:
+ - 0.0056444723
+ - 0.011235352
+ - 0.012174783
+ - 0.0047301673
+ - 0.0028878434
+ - 0.0007069529
+ - 0.00041623006
+ - 0.29202464
+ - 0.034402627
+ - 0.007963796
+ - 0.022982977
+ - 0.0021452548
+ - 0.005928747
+ - 0.5907779
+ - 0.005978256
+ laughterScore: 0
+ - frameNumber: 357
+ frameDelay: 0
+ Visemes:
+ - 0.0054602562
+ - 0.007868105
+ - 0.008561366
+ - 0.0044469726
+ - 0.0034781366
+ - 0.000512764
+ - 0.0003124746
+ - 0.4997558
+ - 0.024094775
+ - 0.005583267
+ - 0.016121399
+ - 0.0015687419
+ - 0.00418733
+ - 0.4138589
+ - 0.00418971
+ laughterScore: 0
+ - frameNumber: 358
+ frameDelay: 0
+ Visemes:
+ - 0.007666867
+ - 0.0055164928
+ - 0.0060348064
+ - 0.0040249904
+ - 0.009014177
+ - 0.0004354252
+ - 0.00025623452
+ - 0.6378318
+ - 0.016920596
+ - 0.003919928
+ - 0.011357506
+ - 0.0011530719
+ - 0.0031718975
+ - 0.28974426
+ - 0.0029519233
+ laughterScore: 0
+ - frameNumber: 359
+ frameDelay: 0
+ Visemes:
+ - 0.016193727
+ - 0.0040268106
+ - 0.0043527707
+ - 0.00838795
+ - 0.029419597
+ - 0.00046830293
+ - 0.00021088836
+ - 0.70296144
+ - 0.013134048
+ - 0.0027664555
+ - 0.008576012
+ - 0.00089637644
+ - 0.0033723826
+ - 0.20300996
+ - 0.002223265
+ laughterScore: 0
+ - frameNumber: 360
+ frameDelay: 0
+ Visemes:
+ - 0.018441813
+ - 0.0029674226
+ - 0.0030680744
+ - 0.010522787
+ - 0.025470626
+ - 0.0007613881
+ - 0.00032545946
+ - 0.51093245
+ - 0.012441315
+ - 0.002072914
+ - 0.08794249
+ - 0.019324858
+ - 0.16118293
+ - 0.14278737
+ - 0.0017580799
+ laughterScore: 0
+ - frameNumber: 361
+ frameDelay: 0
+ Visemes:
+ - 0.025017291
+ - 0.002147375
+ - 0.0023064448
+ - 0.008641626
+ - 0.02541578
+ - 0.0009278323
+ - 0.00043464213
+ - 0.36647412
+ - 0.00935367
+ - 0.0019014971
+ - 0.10482383
+ - 0.066178456
+ - 0.28472984
+ - 0.100334145
+ - 0.0013134427
+ laughterScore: 0
+ - frameNumber: 362
+ frameDelay: 0
+ Visemes:
+ - 0.020968325
+ - 0.0015529852
+ - 0.0017424322
+ - 0.0065187756
+ - 0.021615814
+ - 0.0008894872
+ - 0.00034049287
+ - 0.25682104
+ - 0.0068326597
+ - 0.0015095774
+ - 0.10916975
+ - 0.07495123
+ - 0.4259035
+ - 0.07024978
+ - 0.0009341196
+ laughterScore: 0
+ - frameNumber: 363
+ frameDelay: 0
+ Visemes:
+ - 0.020177495
+ - 0.0011138492
+ - 0.0012892585
+ - 0.0048265066
+ - 0.017900039
+ - 0.0010093444
+ - 0.0002870928
+ - 0.17985642
+ - 0.0055826013
+ - 0.0011578734
+ - 0.0948653
+ - 0.099558175
+ - 0.5225122
+ - 0.049191877
+ - 0.00067189895
+ laughterScore: 0
+ - frameNumber: 364
+ frameDelay: 0
+ Visemes:
+ - 0.019481413
+ - 0.00083547976
+ - 0.0009263248
+ - 0.0034761648
+ - 0.01838267
+ - 0.0015667999
+ - 0.00023061433
+ - 0.12598968
+ - 0.009316016
+ - 0.0009598199
+ - 0.079694524
+ - 0.15311673
+ - 0.55107605
+ - 0.034450736
+ - 0.0004968993
+ laughterScore: 0
+ - frameNumber: 365
+ frameDelay: 0
+ Visemes:
+ - 0.021524403
+ - 0.0007002537
+ - 0.00068166375
+ - 0.002612659
+ - 0.015621269
+ - 0.0016025914
+ - 0.0001865861
+ - 0.088352546
+ - 0.028448042
+ - 0.0014250225
+ - 0.08310324
+ - 0.20104429
+ - 0.52998525
+ - 0.024154123
+ - 0.000558044
+ laughterScore: 0
+ - frameNumber: 366
+ frameDelay: 0
+ Visemes:
+ - 0.018879995
+ - 0.0012875136
+ - 0.00060237484
+ - 0.0018950916
+ - 0.013947598
+ - 0.0033694112
+ - 0.00014219854
+ - 0.061885007
+ - 0.28975642
+ - 0.0010854792
+ - 0.061227344
+ - 0.1448496
+ - 0.38370848
+ - 0.016911348
+ - 0.00045216904
+ laughterScore: 0
+ - frameNumber: 367
+ frameDelay: 0
+ Visemes:
+ - 0.019863907
+ - 0.002297739
+ - 0.00048601296
+ - 0.0014199468
+ - 0.011464349
+ - 0.0060693603
+ - 0.0001228239
+ - 0.043379165
+ - 0.48723555
+ - 0.00076896796
+ - 0.043442428
+ - 0.10190206
+ - 0.2693874
+ - 0.011838851
+ - 0.00032147428
+ laughterScore: 0
+ - frameNumber: 368
+ frameDelay: 0
+ Visemes:
+ - 0.020834789
+ - 0.0027645547
+ - 0.00043860942
+ - 0.0056313593
+ - 0.033883817
+ - 0.00931676
+ - 0.00022470747
+ - 0.03052424
+ - 0.5950497
+ - 0.000562003
+ - 0.030949049
+ - 0.07182935
+ - 0.1894209
+ - 0.008290985
+ - 0.00027915268
+ laughterScore: 0
+ - frameNumber: 369
+ frameDelay: 0
+ Visemes:
+ - 0.020124711
+ - 0.017483776
+ - 0.002354582
+ - 0.016111942
+ - 0.11097748
+ - 0.0079203695
+ - 0.0013093748
+ - 0.02157512
+ - 0.57870346
+ - 0.0015974301
+ - 0.025922157
+ - 0.05081927
+ - 0.13507332
+ - 0.005894612
+ - 0.0041323295
+ laughterScore: 0
+ - frameNumber: 370
+ frameDelay: 0
+ Visemes:
+ - 0.019937245
+ - 0.09779664
+ - 0.01699536
+ - 0.014027035
+ - 0.10846123
+ - 0.012246798
+ - 0.002558483
+ - 0.015233408
+ - 0.46603626
+ - 0.03234412
+ - 0.020443153
+ - 0.03563186
+ - 0.095644616
+ - 0.004358789
+ - 0.05828496
+ laughterScore: 0
+ - frameNumber: 371
+ frameDelay: 0
+ Visemes:
+ - 0.018028421
+ - 0.08258709
+ - 0.017829541
+ - 0.010067556
+ - 0.07676045
+ - 0.009515694
+ - 0.0018243247
+ - 0.010689529
+ - 0.32857668
+ - 0.19797419
+ - 0.014889536
+ - 0.025028449
+ - 0.06732328
+ - 0.0033327295
+ - 0.13557248
+ laughterScore: 0
+ - frameNumber: 372
+ frameDelay: 0
+ Visemes:
+ - 0.013735705
+ - 0.058014106
+ - 0.012633858
+ - 0.007054076
+ - 0.053742405
+ - 0.006727116
+ - 0.0012794398
+ - 0.0074847485
+ - 0.23004618
+ - 0.42936707
+ - 0.010509161
+ - 0.018027946
+ - 0.04901933
+ - 0.0023488975
+ - 0.10000993
+ laughterScore: 0
+ - frameNumber: 373
+ frameDelay: 0
+ Visemes:
+ - 0.010808841
+ - 0.040636465
+ - 0.008852976
+ - 0.0049403924
+ - 0.037629765
+ - 0.004716145
+ - 0.0008958257
+ - 0.005239508
+ - 0.16110396
+ - 0.56471634
+ - 0.007386979
+ - 0.013099892
+ - 0.0675184
+ - 0.0016469599
+ - 0.07080749
+ laughterScore: 0
+ - frameNumber: 374
+ frameDelay: 0
+ Visemes:
+ - 0.008823937
+ - 0.028453255
+ - 0.006200396
+ - 0.0034645908
+ - 0.026344342
+ - 0.0033158138
+ - 0.00062759366
+ - 0.0036677928
+ - 0.112821445
+ - 0.40611365
+ - 0.00522788
+ - 0.009725845
+ - 0.33406505
+ - 0.0011573692
+ - 0.04999101
+ laughterScore: 0
+ - frameNumber: 375
+ frameDelay: 0
+ Visemes:
+ - 0.007021333
+ - 0.019917844
+ - 0.004340807
+ - 0.0024275403
+ - 0.018443068
+ - 0.002335348
+ - 0.000439931
+ - 0.0025678992
+ - 0.07898936
+ - 0.28470236
+ - 0.0038113047
+ - 0.0071073016
+ - 0.5319583
+ - 0.0008107788
+ - 0.03512684
+ laughterScore: 0
+ - frameNumber: 376
+ frameDelay: 0
+ Visemes:
+ - 0.005824643
+ - 0.013947961
+ - 0.0030403147
+ - 0.001705181
+ - 0.012917462
+ - 0.0016451471
+ - 0.00030840552
+ - 0.0017986671
+ - 0.05540196
+ - 0.19931938
+ - 0.08349576
+ - 0.0049883416
+ - 0.59032786
+ - 0.0005681684
+ - 0.024710687
+ laughterScore: 0
+ - frameNumber: 377
+ frameDelay: 0
+ Visemes:
+ - 0.0044335783
+ - 0.0097692935
+ - 0.0021283994
+ - 0.0011962902
+ - 0.009047494
+ - 0.0011542194
+ - 0.00021591861
+ - 0.0012593598
+ - 0.040813234
+ - 0.13952772
+ - 0.30832952
+ - 0.0034998811
+ - 0.46092182
+ - 0.00039884154
+ - 0.01730438
+ laughterScore: 0
+ - frameNumber: 378
+ frameDelay: 0
+ Visemes:
+ - 0.0035523833
+ - 0.006866293
+ - 0.0014902592
+ - 0.00083898165
+ - 0.006340475
+ - 0.0008087811
+ - 0.00015118968
+ - 0.00088247505
+ - 0.056421183
+ - 0.097677626
+ - 0.48459083
+ - 0.00249789
+ - 0.32547715
+ - 0.0002870765
+ - 0.012117428
+ laughterScore: 0
+ - frameNumber: 379
+ frameDelay: 0
+ Visemes:
+ - 0.0036073301
+ - 0.004891449
+ - 0.0010453587
+ - 0.000590355
+ - 0.0044673956
+ - 0.0005673513
+ - 0.00010625224
+ - 0.0006244488
+ - 0.24922146
+ - 0.06837878
+ - 0.4274885
+ - 0.0018023257
+ - 0.22849265
+ - 0.00021153901
+ - 0.008504836
+ laughterScore: 0
+ - frameNumber: 380
+ frameDelay: 0
+ Visemes:
+ - 0.0032267594
+ - 0.0034325111
+ - 0.00074447156
+ - 0.00044744596
+ - 0.0032065872
+ - 0.00039923613
+ - 0.000076621836
+ - 0.0011508816
+ - 0.4693264
+ - 0.047873802
+ - 0.3024484
+ - 0.0012795366
+ - 0.16021399
+ - 0.00021729148
+ - 0.0059560835
+ laughterScore: 0
+ - frameNumber: 381
+ frameDelay: 0
+ Visemes:
+ - 0.006475595
+ - 0.002867206
+ - 0.00071398774
+ - 0.0038664036
+ - 0.011392282
+ - 0.00041981522
+ - 0.00015440749
+ - 0.004069974
+ - 0.60558397
+ - 0.03356356
+ - 0.21273711
+ - 0.00089879206
+ - 0.11286161
+ - 0.0002015123
+ - 0.004193801
+ laughterScore: 0
+ - frameNumber: 382
+ frameDelay: 0
+ Visemes:
+ - 0.0151185
+ - 0.0030439685
+ - 0.0008838122
+ - 0.10927812
+ - 0.12392006
+ - 0.0008331317
+ - 0.0015742783
+ - 0.011029356
+ - 0.47744325
+ - 0.023789937
+ - 0.14942883
+ - 0.00065746496
+ - 0.07981887
+ - 0.00020986382
+ - 0.0029705898
+ laughterScore: 0
+ - frameNumber: 383
+ frameDelay: 0
+ Visemes:
+ - 0.014882654
+ - 0.0022023648
+ - 0.0006630461
+ - 0.10978142
+ - 0.3431795
+ - 0.0006318114
+ - 0.0016288443
+ - 0.010119465
+ - 0.336748
+ - 0.016664343
+ - 0.10479492
+ - 0.0004719159
+ - 0.05595011
+ - 0.00018995795
+ - 0.0020916634
+ laughterScore: 0
+ - frameNumber: 384
+ frameDelay: 0
+ Visemes:
+ - 0.012908837
+ - 0.0015745482
+ - 0.0004930256
+ - 0.07975157
+ - 0.5284041
+ - 0.00053424685
+ - 0.0011954935
+ - 0.012897559
+ - 0.23582283
+ - 0.011667047
+ - 0.07354072
+ - 0.00033473794
+ - 0.039197944
+ - 0.00015208402
+ - 0.0015251688
+ laughterScore: 0
+ - frameNumber: 385
+ frameDelay: 0
+ Visemes:
+ - 0.010251772
+ - 0.0011440094
+ - 0.00037257036
+ - 0.056209333
+ - 0.650228
+ - 0.0020015892
+ - 0.0008573478
+ - 0.009872893
+ - 0.16510408
+ - 0.008178273
+ - 0.06653786
+ - 0.00037225883
+ - 0.027505882
+ - 0.00016018955
+ - 0.0012039108
+ laughterScore: 0
+ - frameNumber: 386
+ frameDelay: 0
+ Visemes:
+ - 0.010220105
+ - 0.0008777192
+ - 0.00034432148
+ - 0.039573714
+ - 0.72427475
+ - 0.012994914
+ - 0.0006339218
+ - 0.0071377046
+ - 0.115609996
+ - 0.005815793
+ - 0.059948847
+ - 0.0014310988
+ - 0.019406043
+ - 0.0007543118
+ - 0.0009767945
+ laughterScore: 0
+ - frameNumber: 387
+ frameDelay: 0
+ Visemes:
+ - 0.00892473
+ - 0.0006307769
+ - 0.00025070517
+ - 0.027719693
+ - 0.5126384
+ - 0.011047576
+ - 0.00046260038
+ - 0.0049993778
+ - 0.08093267
+ - 0.0041458644
+ - 0.31839892
+ - 0.004370087
+ - 0.013714557
+ - 0.0110690305
+ - 0.000695062
+ laughterScore: 0
+ - frameNumber: 388
+ frameDelay: 0
+ Visemes:
+ - 0.008551678
+ - 0.00057209405
+ - 0.00018105068
+ - 0.019406982
+ - 0.36023447
+ - 0.008157554
+ - 0.00032925245
+ - 0.003500994
+ - 0.056733426
+ - 0.0031633493
+ - 0.4980331
+ - 0.007362372
+ - 0.009902294
+ - 0.023375534
+ - 0.0004958901
+ laughterScore: 0
+ - frameNumber: 389
+ frameDelay: 0
+ Visemes:
+ - 0.007475323
+ - 0.0028358563
+ - 0.00012937255
+ - 0.013587239
+ - 0.25260678
+ - 0.0058678626
+ - 0.00023120298
+ - 0.0024523048
+ - 0.039965834
+ - 0.003275914
+ - 0.6368128
+ - 0.006320209
+ - 0.0074620647
+ - 0.02062266
+ - 0.00035464633
+ laughterScore: 0
+ - frameNumber: 390
+ frameDelay: 0
+ Visemes:
+ - 0.0059693013
+ - 0.004919866
+ - 0.00009179491
+ - 0.00951191
+ - 0.17691585
+ - 0.004165258
+ - 0.00016199752
+ - 0.0017167889
+ - 0.028073348
+ - 0.0037827026
+ - 0.739254
+ - 0.0045738216
+ - 0.0053556063
+ - 0.015257747
+ - 0.00025005382
+ laughterScore: 0
+ - frameNumber: 391
+ frameDelay: 0
+ Visemes:
+ - 0.0046842815
+ - 0.0039604893
+ - 0.0000644537
+ - 0.00665887
+ - 0.12388545
+ - 0.0029369127
+ - 0.000113497495
+ - 0.0012017831
+ - 0.019682975
+ - 0.0031947247
+ - 0.815536
+ - 0.0032892672
+ - 0.0038101398
+ - 0.010805409
+ - 0.00017578526
+ laughterScore: 0
+ - frameNumber: 392
+ frameDelay: 0
+ Visemes:
+ - 0.0037840619
+ - 0.005281322
+ - 0.000045463537
+ - 0.004662606
+ - 0.086763084
+ - 0.0020908166
+ - 0.00007984058
+ - 0.0008413049
+ - 0.013828119
+ - 0.0024229784
+ - 0.8672116
+ - 0.0023799716
+ - 0.0028958183
+ - 0.0075863576
+ - 0.00012679785
+ laughterScore: 0
+ - frameNumber: 393
+ frameDelay: 0
+ Visemes:
+ - 0.0034556435
+ - 0.016126303
+ - 0.000033113327
+ - 0.0032672954
+ - 0.060843095
+ - 0.0015431235
+ - 0.000059716105
+ - 0.0005891162
+ - 0.0097896755
+ - 0.0017903597
+ - 0.89210165
+ - 0.0018447136
+ - 0.0031376104
+ - 0.005318121
+ - 0.000100574776
+ laughterScore: 0
+ - frameNumber: 394
+ frameDelay: 0
+ Visemes:
+ - 0.003117866
+ - 0.030348148
+ - 0.000026539214
+ - 0.0022985444
+ - 0.042755805
+ - 0.0011500722
+ - 0.00005386986
+ - 0.0004126299
+ - 0.0070226234
+ - 0.0013071685
+ - 0.90131766
+ - 0.0015004587
+ - 0.004864415
+ - 0.0037256705
+ - 0.00009859667
+ laughterScore: 0
+ - frameNumber: 395
+ frameDelay: 0
+ Visemes:
+ - 0.0022281627
+ - 0.32067233
+ - 0.00005511017
+ - 0.001609112
+ - 0.029933855
+ - 0.00090943737
+ - 0.000037811355
+ - 0.000288939
+ - 0.0049731336
+ - 0.00091638084
+ - 0.6311985
+ - 0.0010514208
+ - 0.0034485003
+ - 0.002607992
+ - 0.00006939108
+ laughterScore: 0
+ - frameNumber: 396
+ frameDelay: 0
+ Visemes:
+ - 0.0016419138
+ - 0.5238762
+ - 0.00007476851
+ - 0.0011267733
+ - 0.020964755
+ - 0.0008142041
+ - 0.00002653978
+ - 0.0002025749
+ - 0.0035973222
+ - 0.00064349145
+ - 0.44199374
+ - 0.00073662534
+ - 0.0024255244
+ - 0.0018256068
+ - 0.000050027826
+ laughterScore: 0
+ - frameNumber: 397
+ frameDelay: 0
+ Visemes:
+ - 0.0014470307
+ - 0.6630507
+ - 0.0004442513
+ - 0.0008123738
+ - 0.0154190445
+ - 0.0012939986
+ - 0.000027201088
+ - 0.0002693051
+ - 0.0034503965
+ - 0.00045612227
+ - 0.30973673
+ - 0.00052300247
+ - 0.0017415895
+ - 0.0012782078
+ - 0.000050070856
+ laughterScore: 0
+ - frameNumber: 398
+ frameDelay: 0
+ Visemes:
+ - 0.0033209575
+ - 0.74546874
+ - 0.0041887565
+ - 0.0008608366
+ - 0.015623663
+ - 0.0038224254
+ - 0.0002224874
+ - 0.0008225746
+ - 0.005055151
+ - 0.00034867282
+ - 0.21757773
+ - 0.0003728486
+ - 0.0013741787
+ - 0.00089903653
+ - 0.000041982716
+ laughterScore: 0
+ - frameNumber: 399
+ frameDelay: 0
+ Visemes:
+ - 0.018966867
+ - 0.6229529
+ - 0.006223061
+ - 0.011459004
+ - 0.12596756
+ - 0.04838326
+ - 0.0028969173
+ - 0.0016854357
+ - 0.0048429216
+ - 0.00031920057
+ - 0.15397242
+ - 0.0002939427
+ - 0.001325577
+ - 0.00066362944
+ - 0.00004737517
+ laughterScore: 0
+ - frameNumber: 400
+ frameDelay: 0
+ Visemes:
+ - 0.025108082
+ - 0.47550035
+ - 0.008529624
+ - 0.014556693
+ - 0.27571404
+ - 0.06564653
+ - 0.017658748
+ - 0.0024060002
+ - 0.0038036734
+ - 0.00029487588
+ - 0.108391
+ - 0.00032154965
+ - 0.0013294902
+ - 0.0006248487
+ - 0.00011452731
+ laughterScore: 0
+ - frameNumber: 401
+ frameDelay: 0
+ Visemes:
+ - 0.023829596
+ - 0.3329953
+ - 0.006186285
+ - 0.011235511
+ - 0.48159206
+ - 0.04681918
+ - 0.014052433
+ - 0.0019459917
+ - 0.0027102854
+ - 0.0002958112
+ - 0.07603594
+ - 0.00026379622
+ - 0.0010831002
+ - 0.0004857696
+ - 0.00046891198
+ laughterScore: 0
+ - frameNumber: 402
+ frameDelay: 0
+ Visemes:
+ - 0.021665445
+ - 0.23332207
+ - 0.0044258866
+ - 0.0081124585
+ - 0.52880067
+ - 0.033026263
+ - 0.010549266
+ - 0.0014634304
+ - 0.0019306529
+ - 0.0015417376
+ - 0.14397596
+ - 0.00023813584
+ - 0.0012985776
+ - 0.00061572075
+ - 0.009033726
+ laughterScore: 0
+ - frameNumber: 403
+ frameDelay: 0
+ Visemes:
+ - 0.018500596
+ - 0.16341045
+ - 0.003153333
+ - 0.005884921
+ - 0.40618464
+ - 0.02336106
+ - 0.008905335
+ - 0.0011672375
+ - 0.0015736542
+ - 0.0017456054
+ - 0.20936862
+ - 0.021130197
+ - 0.041251946
+ - 0.01761403
+ - 0.076748356
+ laughterScore: 0
+ - frameNumber: 404
+ frameDelay: 0
+ Visemes:
+ - 0.015370363
+ - 0.114408754
+ - 0.0022299883
+ - 0.0042551886
+ - 0.28507695
+ - 0.016430993
+ - 0.0072098426
+ - 0.0008369675
+ - 0.0018907925
+ - 0.0019586205
+ - 0.20863
+ - 0.022157561
+ - 0.20482533
+ - 0.019170834
+ - 0.0955478
+ laughterScore: 0
+ - frameNumber: 405
+ frameDelay: 0
+ Visemes:
+ - 0.019467609
+ - 0.080252826
+ - 0.0015980722
+ - 0.0050703324
+ - 0.20125775
+ - 0.012476557
+ - 0.0050793313
+ - 0.0006532686
+ - 0.018747954
+ - 0.0072890096
+ - 0.21308486
+ - 0.026705476
+ - 0.16698486
+ - 0.023947332
+ - 0.21738474
+ laughterScore: 0
+ - frameNumber: 406
+ frameDelay: 0
+ Visemes:
+ - 0.019278929
+ - 0.05772243
+ - 0.0015962614
+ - 0.08978285
+ - 0.14454827
+ - 0.01633581
+ - 0.0035657112
+ - 0.0005014703
+ - 0.06507885
+ - 0.0059356713
+ - 0.19786212
+ - 0.032770056
+ - 0.13291131
+ - 0.017009081
+ - 0.2151012
+ laughterScore: 0
+ - frameNumber: 407
+ frameDelay: 0
+ Visemes:
+ - 0.017316258
+ - 0.04061668
+ - 0.0012456324
+ - 0.09808901
+ - 0.10726663
+ - 0.022387931
+ - 0.0025350333
+ - 0.0003637158
+ - 0.067642376
+ - 0.006292088
+ - 0.21864995
+ - 0.07249866
+ - 0.16573802
+ - 0.012035398
+ - 0.16732262
+ laughterScore: 0
+ - frameNumber: 408
+ frameDelay: 0
+ Visemes:
+ - 0.015040062
+ - 0.028456533
+ - 0.0010109813
+ - 0.07774478
+ - 0.076701865
+ - 0.016147211
+ - 0.0018056689
+ - 0.00042730547
+ - 0.054098986
+ - 0.012406023
+ - 0.24770992
+ - 0.07149871
+ - 0.2697121
+ - 0.00947831
+ - 0.11776156
+ laughterScore: 0
+ - frameNumber: 409
+ frameDelay: 0
+ Visemes:
+ - 0.020254191
+ - 0.020186497
+ - 0.0016916078
+ - 0.056785375
+ - 0.0979628
+ - 0.011966666
+ - 0.0013044439
+ - 0.10522942
+ - 0.042767152
+ - 0.012010667
+ - 0.24903256
+ - 0.06248349
+ - 0.22868213
+ - 0.007030774
+ - 0.08261225
+ laughterScore: 0
+ - frameNumber: 410
+ frameDelay: 0
+ Visemes:
+ - 0.024013441
+ - 0.014290755
+ - 0.0013027949
+ - 0.040402442
+ - 0.07887607
+ - 0.00905975
+ - 0.0010298609
+ - 0.35018128
+ - 0.030080663
+ - 0.008533046
+ - 0.17533807
+ - 0.043777704
+ - 0.16033758
+ - 0.004938754
+ - 0.05783777
+ laughterScore: 0
+ - frameNumber: 411
+ frameDelay: 0
+ Visemes:
+ - 0.024482064
+ - 0.010148077
+ - 0.0009640485
+ - 0.028819555
+ - 0.077790625
+ - 0.006516382
+ - 0.00074596674
+ - 0.5122016
+ - 0.021184757
+ - 0.006033268
+ - 0.12395244
+ - 0.030687215
+ - 0.11246858
+ - 0.0034785063
+ - 0.040526867
+ laughterScore: 0
+ - frameNumber: 412
+ frameDelay: 0
+ Visemes:
+ - 0.025165174
+ - 0.007175154
+ - 0.0007523759
+ - 0.022368595
+ - 0.11558175
+ - 0.0047058715
+ - 0.0005911489
+ - 0.5848857
+ - 0.015009069
+ - 0.0042291195
+ - 0.0880648
+ - 0.021540368
+ - 0.07903316
+ - 0.0024567964
+ - 0.028440878
+ laughterScore: 0
+ - frameNumber: 413
+ frameDelay: 0
+ Visemes:
+ - 0.024415346
+ - 0.005141827
+ - 0.00068453536
+ - 0.023892272
+ - 0.16612604
+ - 0.004243763
+ - 0.00048600123
+ - 0.6037738
+ - 0.011445282
+ - 0.0029723397
+ - 0.06322937
+ - 0.015185016
+ - 0.056575622
+ - 0.0017451501
+ - 0.020083664
+ laughterScore: 0
+ - frameNumber: 414
+ frameDelay: 0
+ Visemes:
+ - 0.020875614
+ - 0.0038708958
+ - 0.00058602437
+ - 0.022487305
+ - 0.13839747
+ - 0.003958968
+ - 0.00035976854
+ - 0.6385645
+ - 0.009292657
+ - 0.002090734
+ - 0.055215232
+ - 0.04717843
+ - 0.041265458
+ - 0.0016870188
+ - 0.014169937
+ laughterScore: 0
+ - frameNumber: 415
+ frameDelay: 0
+ Visemes:
+ - 0.01836904
+ - 0.0027561155
+ - 0.0004521935
+ - 0.018952671
+ - 0.099824175
+ - 0.0034194672
+ - 0.00032437002
+ - 0.44879898
+ - 0.007640099
+ - 0.0015345592
+ - 0.061519247
+ - 0.29253304
+ - 0.030575296
+ - 0.003321039
+ - 0.009979735
+ laughterScore: 0
+ - frameNumber: 416
+ frameDelay: 0
+ Visemes:
+ - 0.018513275
+ - 0.001968218
+ - 0.0003350979
+ - 0.014840556
+ - 0.07078476
+ - 0.0029109474
+ - 0.00024065649
+ - 0.31427735
+ - 0.0056278906
+ - 0.0011377925
+ - 0.06356381
+ - 0.47287408
+ - 0.022109242
+ - 0.003795061
+ - 0.0070212833
+ laughterScore: 0
+ - frameNumber: 417
+ frameDelay: 0
+ Visemes:
+ - 0.0148299
+ - 0.0013817218
+ - 0.00024657696
+ - 0.010495473
+ - 0.05095705
+ - 0.0020788598
+ - 0.0001703992
+ - 0.22003725
+ - 0.004017393
+ - 0.0008122853
+ - 0.048108216
+ - 0.62309873
+ - 0.015893182
+ - 0.0029563701
+ - 0.004916601
+ laughterScore: 0
+ - frameNumber: 418
+ frameDelay: 0
+ Visemes:
+ - 0.014500093
+ - 0.0009910043
+ - 0.00032006347
+ - 0.0078058005
+ - 0.049700618
+ - 0.0015212685
+ - 0.00013134873
+ - 0.15420598
+ - 0.003641988
+ - 0.00074252486
+ - 0.04048645
+ - 0.7065918
+ - 0.012468456
+ - 0.0034378096
+ - 0.0034548475
+ laughterScore: 0
+ - frameNumber: 419
+ frameDelay: 0
+ Visemes:
+ - 0.016453452
+ - 0.0009552345
+ - 0.0014556738
+ - 0.00704501
+ - 0.27907583
+ - 0.0012769942
+ - 0.00017634475
+ - 0.10816185
+ - 0.007972063
+ - 0.0007380059
+ - 0.03297382
+ - 0.5281498
+ - 0.0103665795
+ - 0.0027527679
+ - 0.002446636
+ laughterScore: 0
+ - frameNumber: 420
+ frameDelay: 0
+ Visemes:
+ - 0.019664515
+ - 0.0009320969
+ - 0.002182534
+ - 0.009129003
+ - 0.47335845
+ - 0.0010614693
+ - 0.00016719189
+ - 0.07598145
+ - 0.0076496797
+ - 0.00059371
+ - 0.025262002
+ - 0.3725304
+ - 0.0076103886
+ - 0.0020832273
+ - 0.0017938437
+ laughterScore: 0
+ - frameNumber: 421
+ frameDelay: 0
+ Visemes:
+ - 0.02130676
+ - 0.000778716
+ - 0.0025158143
+ - 0.019769527
+ - 0.5957502
+ - 0.0009289611
+ - 0.00012691035
+ - 0.053692855
+ - 0.008489847
+ - 0.00047962018
+ - 0.024409795
+ - 0.26302722
+ - 0.00565666
+ - 0.0017304847
+ - 0.0013366215
+ laughterScore: 0
+ - frameNumber: 422
+ frameDelay: 0
+ Visemes:
+ - 0.023297627
+ - 0.0007504996
+ - 0.0019844577
+ - 0.017933562
+ - 0.579271
+ - 0.0009842494
+ - 0.00009350279
+ - 0.037756618
+ - 0.0067849355
+ - 0.0005882648
+ - 0.12748726
+ - 0.19318356
+ - 0.0061445325
+ - 0.002642232
+ - 0.0010976993
+ laughterScore: 0
+ - frameNumber: 423
+ frameDelay: 0
+ Visemes:
+ - 0.04306776
+ - 0.00084927224
+ - 0.0018977944
+ - 0.019441402
+ - 0.48431206
+ - 0.0016170125
+ - 0.000115487
+ - 0.02723719
+ - 0.006255057
+ - 0.0011878407
+ - 0.19613987
+ - 0.18401623
+ - 0.026750892
+ - 0.0051823705
+ - 0.0019297604
+ laughterScore: 0
+ - frameNumber: 424
+ frameDelay: 0
+ Visemes:
+ - 0.04770023
+ - 0.001248834
+ - 0.002061577
+ - 0.019482318
+ - 0.3572343
+ - 0.0028752098
+ - 0.00014779394
+ - 0.01946656
+ - 0.00617106
+ - 0.0033566917
+ - 0.3137632
+ - 0.18564925
+ - 0.03189276
+ - 0.0070824963
+ - 0.0018677177
+ laughterScore: 0
+ - frameNumber: 425
+ frameDelay: 0
+ Visemes:
+ - 0.04138517
+ - 0.0014275424
+ - 0.004083244
+ - 0.014166327
+ - 0.25826067
+ - 0.004731802
+ - 0.00016217807
+ - 0.014354827
+ - 0.009793691
+ - 0.0032594772
+ - 0.41628075
+ - 0.17825611
+ - 0.044626728
+ - 0.007575938
+ - 0.0016355533
+ laughterScore: 0
+ - frameNumber: 426
+ frameDelay: 0
+ Visemes:
+ - 0.037667844
+ - 0.002455078
+ - 0.06757029
+ - 0.013876386
+ - 0.21341741
+ - 0.003535677
+ - 0.00014210567
+ - 0.036328115
+ - 0.009716399
+ - 0.0036744552
+ - 0.4180197
+ - 0.12759499
+ - 0.058872674
+ - 0.005953492
+ - 0.001175399
+ laughterScore: 0
+ - frameNumber: 427
+ frameDelay: 0
+ Visemes:
+ - 0.03902986
+ - 0.0025503314
+ - 0.2192953
+ - 0.016530562
+ - 0.2048715
+ - 0.0029887697
+ - 0.00013086153
+ - 0.06104005
+ - 0.0072827004
+ - 0.0029358196
+ - 0.3058171
+ - 0.08940525
+ - 0.043053858
+ - 0.0042159874
+ - 0.00085209496
+ laughterScore: 0
+ - frameNumber: 428
+ frameDelay: 0
+ Visemes:
+ - 0.04573794
+ - 0.0022445119
+ - 0.32128754
+ - 0.0216522
+ - 0.16103093
+ - 0.0028035697
+ - 0.00013823174
+ - 0.12016815
+ - 0.0055009457
+ - 0.00217027
+ - 0.2193232
+ - 0.06266789
+ - 0.031600863
+ - 0.0030036867
+ - 0.00067009474
+ laughterScore: 0
+ - frameNumber: 429
+ frameDelay: 0
+ Visemes:
+ - 0.045380764
+ - 0.0018882721
+ - 0.40753257
+ - 0.026537191
+ - 0.13458095
+ - 0.0024507565
+ - 0.00012067374
+ - 0.15203804
+ - 0.004173024
+ - 0.0015700554
+ - 0.15455428
+ - 0.04389872
+ - 0.02267176
+ - 0.0021100633
+ - 0.000492879
+ laughterScore: 0
+ - frameNumber: 430
+ frameDelay: 0
+ Visemes:
+ - 0.05644393
+ - 0.004394444
+ - 0.43829536
+ - 0.0506999
+ - 0.14087829
+ - 0.002805172
+ - 0.00018508585
+ - 0.14272456
+ - 0.003838917
+ - 0.0012057375
+ - 0.1094326
+ - 0.03079602
+ - 0.016370151
+ - 0.0015045145
+ - 0.0004253487
+ laughterScore: 0
+ - frameNumber: 431
+ frameDelay: 0
+ Visemes:
+ - 0.051685568
+ - 0.004167907
+ - 0.5423423
+ - 0.054932255
+ - 0.11750443
+ - 0.0022335958
+ - 0.00019298535
+ - 0.11094749
+ - 0.0030180435
+ - 0.00091726857
+ - 0.077199444
+ - 0.021590013
+ - 0.0116803115
+ - 0.0010682216
+ - 0.000520203
+ laughterScore: 0
+ - frameNumber: 432
+ frameDelay: 0
+ Visemes:
+ - 0.040807117
+ - 0.0038020357
+ - 0.3946636
+ - 0.04354511
+ - 0.0860474
+ - 0.0018716983
+ - 0.00017260724
+ - 0.077724054
+ - 0.0026324335
+ - 0.0013633553
+ - 0.06187767
+ - 0.14725535
+ - 0.13680716
+ - 0.0008499223
+ - 0.0005805337
+ laughterScore: 0
+ - frameNumber: 433
+ frameDelay: 0
+ Visemes:
+ - 0.031932995
+ - 0.0027757045
+ - 0.276851
+ - 0.0309043
+ - 0.06068944
+ - 0.0014296722
+ - 0.00014173346
+ - 0.05443699
+ - 0.0019786826
+ - 0.0018317954
+ - 0.045453157
+ - 0.30152005
+ - 0.18881154
+ - 0.00070553925
+ - 0.00053742994
+ laughterScore: 0
+ - frameNumber: 434
+ frameDelay: 0
+ Visemes:
+ - 0.026479868
+ - 0.0020872736
+ - 0.19415799
+ - 0.021776132
+ - 0.042766362
+ - 0.0011301092
+ - 0.00012751181
+ - 0.038154267
+ - 0.0016070532
+ - 0.0014372976
+ - 0.03238182
+ - 0.44373253
+ - 0.1930137
+ - 0.0005484538
+ - 0.00059967313
+ laughterScore: 0
+ - frameNumber: 435
+ frameDelay: 0
+ Visemes:
+ - 0.023480877
+ - 0.0016096355
+ - 0.13606368
+ - 0.015299365
+ - 0.030335769
+ - 0.0011925042
+ - 0.00011528177
+ - 0.026787521
+ - 0.0015435414
+ - 0.0017901415
+ - 0.022887474
+ - 0.5393943
+ - 0.1983243
+ - 0.00042644417
+ - 0.00074919284
+ laughterScore: 0
+ - frameNumber: 436
+ frameDelay: 0
+ Visemes:
+ - 0.01860522
+ - 0.001239937
+ - 0.09532982
+ - 0.010795694
+ - 0.022942387
+ - 0.0016256034
+ - 0.00012763368
+ - 0.018846264
+ - 0.0023409144
+ - 0.0024621529
+ - 0.016375298
+ - 0.63583803
+ - 0.17252679
+ - 0.00032046018
+ - 0.0006237903
+ laughterScore: 0
+ - frameNumber: 437
+ frameDelay: 0
+ Visemes:
+ - 0.015756264
+ - 0.0009165506
+ - 0.06817161
+ - 0.0075805886
+ - 0.016783122
+ - 0.0017110493
+ - 0.03227538
+ - 0.034486283
+ - 0.0019575504
+ - 0.0024278322
+ - 0.011729859
+ - 0.6764751
+ - 0.12895262
+ - 0.00026838938
+ - 0.0005078348
+ laughterScore: 0
+ - frameNumber: 438
+ frameDelay: 0
+ Visemes:
+ - 0.0125362985
+ - 0.0006950052
+ - 0.04916569
+ - 0.005320207
+ - 0.012665207
+ - 0.0025591599
+ - 0.2856892
+ - 0.054520078
+ - 0.0014197527
+ - 0.001709261
+ - 0.008267771
+ - 0.47446036
+ - 0.09044087
+ - 0.00018897414
+ - 0.00036215692
+ laughterScore: 0
+ - frameNumber: 439
+ frameDelay: 0
+ Visemes:
+ - 0.012365372
+ - 0.0004922221
+ - 0.035073128
+ - 0.0037365092
+ - 0.009018572
+ - 0.0018637065
+ - 0.4728277
+ - 0.05986532
+ - 0.0010134553
+ - 0.0012100618
+ - 0.005809368
+ - 0.33260673
+ - 0.06371188
+ - 0.0001357711
+ - 0.0002701682
+ laughterScore: 0
+ - frameNumber: 440
+ frameDelay: 0
+ Visemes:
+ - 0.019575901
+ - 0.00086087664
+ - 0.024873663
+ - 0.0028208862
+ - 0.008486902
+ - 0.0015747419
+ - 0.58162713
+ - 0.06685662
+ - 0.0009198808
+ - 0.0010480932
+ - 0.0063067786
+ - 0.23288038
+ - 0.049439132
+ - 0.00013114799
+ - 0.0025978214
+ laughterScore: 0
+ - frameNumber: 441
+ frameDelay: 0
+ Visemes:
+ - 0.027197469
+ - 0.0060017235
+ - 0.017968172
+ - 0.0029997039
+ - 0.007779223
+ - 0.0016443261
+ - 0.5510048
+ - 0.054129213
+ - 0.0024524839
+ - 0.0036162587
+ - 0.07264075
+ - 0.16348436
+ - 0.057704244
+ - 0.00060906773
+ - 0.03076817
+ laughterScore: 0
+ - frameNumber: 442
+ frameDelay: 0
+ Visemes:
+ - 0.030092752
+ - 0.004574203
+ - 0.012726389
+ - 0.0021782455
+ - 0.006151487
+ - 0.002253301
+ - 0.4247138
+ - 0.03837756
+ - 0.0026406506
+ - 0.0036495542
+ - 0.15510692
+ - 0.115085445
+ - 0.05104069
+ - 0.10917934
+ - 0.042229705
+ laughterScore: 0
+ - frameNumber: 443
+ frameDelay: 0
+ Visemes:
+ - 0.03771389
+ - 0.003323254
+ - 0.009012603
+ - 0.0016455915
+ - 0.0064543504
+ - 0.0021228378
+ - 0.30349377
+ - 0.027046878
+ - 0.00560703
+ - 0.0044522705
+ - 0.22780038
+ - 0.08198739
+ - 0.043861285
+ - 0.19435272
+ - 0.051125806
+ laughterScore: 0
+ - frameNumber: 444
+ frameDelay: 0
+ Visemes:
+ - 0.03959429
+ - 0.0026022955
+ - 0.0064073973
+ - 0.0014310787
+ - 0.007126961
+ - 0.0025503805
+ - 0.21418822
+ - 0.019087572
+ - 0.056432415
+ - 0.012976747
+ - 0.3150431
+ - 0.057924006
+ - 0.033194084
+ - 0.18532571
+ - 0.046115786
+ laughterScore: 0
+ - frameNumber: 445
+ frameDelay: 0
+ Visemes:
+ - 0.035792585
+ - 0.0027205457
+ - 0.0046867756
+ - 0.0028273105
+ - 0.007219743
+ - 0.0024445755
+ - 0.15002584
+ - 0.013607427
+ - 0.24001612
+ - 0.012467528
+ - 0.23226522
+ - 0.040659346
+ - 0.025545523
+ - 0.19548556
+ - 0.03423595
+ laughterScore: 0
+ - frameNumber: 446
+ frameDelay: 0
+ Visemes:
+ - 0.028418176
+ - 0.056118716
+ - 0.0042939074
+ - 0.009206651
+ - 0.052301362
+ - 0.0045314925
+ - 0.10518646
+ - 0.0096230665
+ - 0.32447475
+ - 0.010498114
+ - 0.16492416
+ - 0.028494274
+ - 0.019715218
+ - 0.15754217
+ - 0.024671538
+ laughterScore: 0
+ - frameNumber: 447
+ frameDelay: 0
+ Visemes:
+ - 0.027899232
+ - 0.19810934
+ - 0.005748706
+ - 0.018496644
+ - 0.11568757
+ - 0.025853999
+ - 0.07440137
+ - 0.006924883
+ - 0.23718876
+ - 0.0074477536
+ - 0.11632395
+ - 0.019982332
+ - 0.0140134515
+ - 0.11459141
+ - 0.017330673
+ laughterScore: 0
+ - frameNumber: 448
+ frameDelay: 0
+ Visemes:
+ - 0.029266953
+ - 0.24527676
+ - 0.009080736
+ - 0.052237257
+ - 0.19323349
+ - 0.03600897
+ - 0.05241498
+ - 0.0050190617
+ - 0.16922268
+ - 0.0052806935
+ - 0.08233121
+ - 0.014027445
+ - 0.010051935
+ - 0.08406048
+ - 0.012487354
+ laughterScore: 0
+ - frameNumber: 449
+ frameDelay: 0
+ Visemes:
+ - 0.024210816
+ - 0.43684185
+ - 0.008534051
+ - 0.05827736
+ - 0.13992882
+ - 0.02590195
+ - 0.036699682
+ - 0.0036178057
+ - 0.11903952
+ - 0.0037829499
+ - 0.05796959
+ - 0.009851483
+ - 0.0072527267
+ - 0.058895733
+ - 0.009195667
+ laughterScore: 0
+ - frameNumber: 450
+ frameDelay: 0
+ Visemes:
+ - 0.023826491
+ - 0.5246956
+ - 0.0071910117
+ - 0.046494182
+ - 0.10370268
+ - 0.02080657
+ - 0.025733069
+ - 0.002679489
+ - 0.099138536
+ - 0.007896845
+ - 0.05707059
+ - 0.007147363
+ - 0.015612116
+ - 0.041507635
+ - 0.016497899
+ laughterScore: 0
+ - frameNumber: 451
+ frameDelay: 0
+ Visemes:
+ - 0.022037111
+ - 0.37528154
+ - 0.0051946566
+ - 0.063217185
+ - 0.07584537
+ - 0.014915245
+ - 0.018092878
+ - 0.001960745
+ - 0.07226136
+ - 0.009141724
+ - 0.1645187
+ - 0.008119126
+ - 0.12179067
+ - 0.029337782
+ - 0.018285923
+ laughterScore: 0
+ - frameNumber: 452
+ frameDelay: 0
+ Visemes:
+ - 0.01762808
+ - 0.26290333
+ - 0.0040832018
+ - 0.04509268
+ - 0.054252747
+ - 0.010525173
+ - 0.0126821315
+ - 0.003439594
+ - 0.05150755
+ - 0.009103233
+ - 0.19828844
+ - 0.01092813
+ - 0.284471
+ - 0.020945575
+ - 0.014149113
+ laughterScore: 0
+ - frameNumber: 453
+ frameDelay: 0
+ Visemes:
+ - 0.017219462
+ - 0.18495345
+ - 0.012046244
+ - 0.03301531
+ - 0.045118716
+ - 0.0077531124
+ - 0.008933944
+ - 0.2198508
+ - 0.038716324
+ - 0.007317982
+ - 0.18092427
+ - 0.00794652
+ - 0.21152017
+ - 0.0146696195
+ - 0.01001407
+ laughterScore: 0
+ - frameNumber: 454
+ frameDelay: 0
+ Visemes:
+ - 0.01832781
+ - 0.12981267
+ - 0.009146186
+ - 0.027004233
+ - 0.039026536
+ - 0.0056790886
+ - 0.0063514197
+ - 0.43073133
+ - 0.027517606
+ - 0.005477801
+ - 0.12916243
+ - 0.005628167
+ - 0.14884117
+ - 0.01027088
+ - 0.007022697
+ laughterScore: 0
+ - frameNumber: 455
+ frameDelay: 0
+ Visemes:
+ - 0.019001445
+ - 0.091102086
+ - 0.0064885644
+ - 0.08329843
+ - 0.02953228
+ - 0.005287748
+ - 0.0044975807
+ - 0.5094808
+ - 0.02175752
+ - 0.0038715214
+ - 0.09664792
+ - 0.0049661454
+ - 0.111713685
+ - 0.007240373
+ - 0.0051139537
+ laughterScore: 0
+ - frameNumber: 456
+ frameDelay: 0
+ Visemes:
+ - 0.021539487
+ - 0.063951746
+ - 0.0046719983
+ - 0.07479991
+ - 0.023613326
+ - 0.0051270616
+ - 0.0033018473
+ - 0.36392495
+ - 0.016762624
+ - 0.002955408
+ - 0.13821685
+ - 0.025265278
+ - 0.24669875
+ - 0.0053733652
+ - 0.003797414
+ laughterScore: 0
+ - frameNumber: 457
+ frameDelay: 0
+ Visemes:
+ - 0.021646958
+ - 0.04485683
+ - 0.003331942
+ - 0.058172714
+ - 0.018607857
+ - 0.0044481624
+ - 0.0024841814
+ - 0.25730076
+ - 0.013511551
+ - 0.00238662
+ - 0.13285005
+ - 0.085088335
+ - 0.34839034
+ - 0.0039236126
+ - 0.0030000976
+ laughterScore: 0
+ - frameNumber: 458
+ frameDelay: 0
+ Visemes:
+ - 0.024707206
+ - 0.031666424
+ - 0.0026758309
+ - 0.04137195
+ - 0.022012206
+ - 0.0039304425
+ - 0.0021643809
+ - 0.18198834
+ - 0.024060804
+ - 0.0027530799
+ - 0.15300618
+ - 0.075894736
+ - 0.42816237
+ - 0.0030082301
+ - 0.0025978344
+ laughterScore: 0
+ - frameNumber: 459
+ frameDelay: 0
+ Visemes:
+ - 0.023765922
+ - 0.02245425
+ - 0.0027206899
+ - 0.029033683
+ - 0.065390825
+ - 0.004833497
+ - 0.023271978
+ - 0.15307283
+ - 0.07445192
+ - 0.0032363092
+ - 0.122391045
+ - 0.054173153
+ - 0.4171325
+ - 0.0021238327
+ - 0.0019475699
+ laughterScore: 0
+ - frameNumber: 460
+ frameDelay: 0
+ Visemes:
+ - 0.022132859
+ - 0.015743293
+ - 0.0025284318
+ - 0.020424733
+ - 0.120697215
+ - 0.0041211178
+ - 0.16934757
+ - 0.16289087
+ - 0.054473363
+ - 0.0024231027
+ - 0.08725645
+ - 0.03807692
+ - 0.29698342
+ - 0.001497381
+ - 0.001403246
+ laughterScore: 0
+ - frameNumber: 461
+ frameDelay: 0
+ Visemes:
+ - 0.022000376
+ - 0.011037395
+ - 0.0022478355
+ - 0.014475142
+ - 0.09421362
+ - 0.0030782395
+ - 0.3567959
+ - 0.15349284
+ - 0.038246874
+ - 0.0018187148
+ - 0.061158374
+ - 0.026701394
+ - 0.21261014
+ - 0.0010660634
+ - 0.0010570823
+ laughterScore: 0
+ - frameNumber: 462
+ frameDelay: 0
+ Visemes:
+ - 0.02253087
+ - 0.007893508
+ - 0.0025698077
+ - 0.010244007
+ - 0.082267255
+ - 0.0023652124
+ - 0.44556797
+ - 0.130583
+ - 0.02691366
+ - 0.0015414091
+ - 0.043123007
+ - 0.018724209
+ - 0.20371526
+ - 0.0008162516
+ - 0.0011445861
+ laughterScore: 0
+ - frameNumber: 463
+ frameDelay: 0
+ Visemes:
+ - 0.022534788
+ - 0.0057564233
+ - 0.0033804546
+ - 0.0072872434
+ - 0.06624402
+ - 0.0020607389
+ - 0.51852447
+ - 0.103040524
+ - 0.019056527
+ - 0.003236497
+ - 0.032076314
+ - 0.013130039
+ - 0.2010353
+ - 0.00063630106
+ - 0.0020003994
+ laughterScore: 0
+ - frameNumber: 464
+ frameDelay: 0
+ Visemes:
+ - 0.024568658
+ - 0.004266792
+ - 0.0028218562
+ - 0.005537081
+ - 0.047938984
+ - 0.0032011531
+ - 0.5835924
+ - 0.073468626
+ - 0.013851061
+ - 0.004480212
+ - 0.045761377
+ - 0.009487269
+ - 0.16466852
+ - 0.00046739628
+ - 0.015888691
+ laughterScore: 0
+ - frameNumber: 465
+ frameDelay: 0
+ Visemes:
+ - 0.024340058
+ - 0.0030583257
+ - 0.0020354555
+ - 0.004596562
+ - 0.03519501
+ - 0.002848396
+ - 0.4132124
+ - 0.051528186
+ - 0.010394387
+ - 0.006854713
+ - 0.10060945
+ - 0.007668418
+ - 0.31279677
+ - 0.00041899976
+ - 0.024442924
+ laughterScore: 0
+ - frameNumber: 466
+ frameDelay: 0
+ Visemes:
+ - 0.022440393
+ - 0.0021679455
+ - 0.0014498188
+ - 0.0034888927
+ - 0.026819864
+ - 0.0022956473
+ - 0.29001254
+ - 0.036279768
+ - 0.009985249
+ - 0.011895543
+ - 0.24533497
+ - 0.0060718823
+ - 0.31521744
+ - 0.00047856892
+ - 0.02606153
+ laughterScore: 0
+ - frameNumber: 467
+ frameDelay: 0
+ Visemes:
+ - 0.023433464
+ - 0.0022970275
+ - 0.0012817088
+ - 0.0033597555
+ - 0.026885329
+ - 0.0037694173
+ - 0.20367679
+ - 0.02806925
+ - 0.023404729
+ - 0.013552403
+ - 0.22277737
+ - 0.0047956808
+ - 0.4173196
+ - 0.0005989551
+ - 0.024778575
+ laughterScore: 0
+ - frameNumber: 468
+ frameDelay: 0
+ Visemes:
+ - 0.022356132
+ - 0.002247093
+ - 0.0009971191
+ - 0.003056596
+ - 0.02469093
+ - 0.02452308
+ - 0.14272234
+ - 0.020200016
+ - 0.26229578
+ - 0.009720792
+ - 0.16608243
+ - 0.0041505806
+ - 0.2986792
+ - 0.00043672737
+ - 0.017841214
+ laughterScore: 0
+ - frameNumber: 469
+ frameDelay: 0
+ Visemes:
+ - 0.021793596
+ - 0.0021040407
+ - 0.00073941285
+ - 0.0029864188
+ - 0.02097716
+ - 0.023952678
+ - 0.100040354
+ - 0.014263996
+ - 0.4605864
+ - 0.0068292613
+ - 0.119345486
+ - 0.0034806158
+ - 0.21003452
+ - 0.00031310716
+ - 0.012552948
+ laughterScore: 0
+ - frameNumber: 470
+ frameDelay: 0
+ Visemes:
+ - 0.02007984
+ - 0.0040429095
+ - 0.0007655391
+ - 0.008931731
+ - 0.02881838
+ - 0.024531092
+ - 0.0702022
+ - 0.010690711
+ - 0.58285815
+ - 0.0048731733
+ - 0.08439753
+ - 0.0028488257
+ - 0.14762074
+ - 0.0002803286
+ - 0.0090588145
+ laughterScore: 0
+ - frameNumber: 471
+ frameDelay: 0
+ Visemes:
+ - 0.017423056
+ - 0.008721572
+ - 0.0013429694
+ - 0.010084206
+ - 0.03795162
+ - 0.02760619
+ - 0.049488064
+ - 0.007696153
+ - 0.66401935
+ - 0.0034604385
+ - 0.05974672
+ - 0.002034625
+ - 0.10359668
+ - 0.00023860336
+ - 0.0065897144
+ laughterScore: 0
+ - frameNumber: 472
+ frameDelay: 0
+ Visemes:
+ - 0.018820403
+ - 0.019654496
+ - 0.002324651
+ - 0.014176134
+ - 0.097696036
+ - 0.03226007
+ - 0.035118733
+ - 0.0058962503
+ - 0.6500361
+ - 0.0024549866
+ - 0.042192444
+ - 0.0014386853
+ - 0.072783075
+ - 0.0001784105
+ - 0.004969468
+ laughterScore: 0
+ - frameNumber: 473
+ frameDelay: 0
+ Visemes:
+ - 0.031660028
+ - 0.04201004
+ - 0.003780368
+ - 0.022548638
+ - 0.15318915
+ - 0.03465104
+ - 0.025382038
+ - 0.0052542672
+ - 0.5930414
+ - 0.0017954933
+ - 0.030049553
+ - 0.0010320673
+ - 0.051307708
+ - 0.00014977503
+ - 0.004148414
+ laughterScore: 0
+ - frameNumber: 474
+ frameDelay: 0
+ Visemes:
+ - 0.048083615
+ - 0.122418635
+ - 0.011668146
+ - 0.0362459
+ - 0.17083466
+ - 0.034205973
+ - 0.018192934
+ - 0.0044352314
+ - 0.48828006
+ - 0.0016156198
+ - 0.021780364
+ - 0.0007569538
+ - 0.03606368
+ - 0.0001844412
+ - 0.0052337646
+ laughterScore: 0
+ - frameNumber: 475
+ frameDelay: 0
+ Visemes:
+ - 0.037812307
+ - 0.3628534
+ - 0.010912104
+ - 0.025779415
+ - 0.12005779
+ - 0.024206243
+ - 0.012737056
+ - 0.0031121408
+ - 0.3452623
+ - 0.0012810129
+ - 0.015664507
+ - 0.0005396652
+ - 0.02580148
+ - 0.00037113635
+ - 0.013609456
+ laughterScore: 0
+ - frameNumber: 476
+ frameDelay: 0
+ Visemes:
+ - 0.032297555
+ - 0.2564612
+ - 0.008153057
+ - 0.01841909
+ - 0.0840889
+ - 0.017051492
+ - 0.008920887
+ - 0.0021831875
+ - 0.2875807
+ - 0.0010305772
+ - 0.026788209
+ - 0.014471216
+ - 0.038103238
+ - 0.0089741545
+ - 0.19547656
+ laughterScore: 0
+ - frameNumber: 477
+ frameDelay: 0
+ Visemes:
+ - 0.032978885
+ - 0.17962775
+ - 0.005745093
+ - 0.013083387
+ - 0.06514258
+ - 0.012009689
+ - 0.006259699
+ - 0.0015331078
+ - 0.20682545
+ - 0.0011125038
+ - 0.0229144
+ - 0.22661722
+ - 0.04842449
+ - 0.039937597
+ - 0.1377882
+ laughterScore: 0
+ - frameNumber: 478
+ frameDelay: 0
+ Visemes:
+ - 0.028201891
+ - 0.1258437
+ - 0.0040530423
+ - 0.009331175
+ - 0.049182095
+ - 0.008531692
+ - 0.004404816
+ - 0.0010971512
+ - 0.14518273
+ - 0.0010344379
+ - 0.02114147
+ - 0.39163703
+ - 0.04991289
+ - 0.0638328
+ - 0.09661317
+ laughterScore: 0
+ - frameNumber: 479
+ frameDelay: 0
+ Visemes:
+ - 0.024830356
+ - 0.088251464
+ - 0.0029708908
+ - 0.006972966
+ - 0.03661559
+ - 0.0070262924
+ - 0.0031477094
+ - 0.0010099648
+ - 0.10207455
+ - 0.0010998655
+ - 0.021352163
+ - 0.5220505
+ - 0.045010988
+ - 0.06967158
+ - 0.06791514
+ laughterScore: 0
+ - frameNumber: 480
+ frameDelay: 0
+ Visemes:
+ - 0.02005392
+ - 0.06180818
+ - 0.0022383416
+ - 0.0051263445
+ - 0.030105278
+ - 0.0066854614
+ - 0.0022652936
+ - 0.001110835
+ - 0.07184967
+ - 0.0010721718
+ - 0.019011304
+ - 0.63455594
+ - 0.036893427
+ - 0.05952576
+ - 0.04769813
+ laughterScore: 0
+ - frameNumber: 481
+ frameDelay: 0
+ Visemes:
+ - 0.021947484
+ - 0.04332916
+ - 0.0016497752
+ - 0.0038996718
+ - 0.07514205
+ - 0.0061395606
+ - 0.0017864534
+ - 0.0017422084
+ - 0.050535306
+ - 0.0008985027
+ - 0.014291136
+ - 0.6596377
+ - 0.042034388
+ - 0.04337946
+ - 0.033587195
+ laughterScore: 0
+ - frameNumber: 482
+ frameDelay: 0
+ Visemes:
+ - 0.026518822
+ - 0.030404244
+ - 0.0012486691
+ - 0.002923084
+ - 0.13711919
+ - 0.0052707875
+ - 0.0014307783
+ - 0.0021708827
+ - 0.035533745
+ - 0.00083352794
+ - 0.010949133
+ - 0.6406168
+ - 0.050707452
+ - 0.030659854
+ - 0.023613047
+ laughterScore: 0
+ - frameNumber: 483
+ frameDelay: 0
+ Visemes:
+ - 0.026925182
+ - 0.021344855
+ - 0.00091697567
+ - 0.0021209647
+ - 0.2258782
+ - 0.007362783
+ - 0.0011142011
+ - 0.0019206831
+ - 0.024993412
+ - 0.00074331724
+ - 0.009383282
+ - 0.59665215
+ - 0.040563893
+ - 0.023439726
+ - 0.016640307
+ laughterScore: 0
+ - frameNumber: 484
+ frameDelay: 0
+ Visemes:
+ - 0.026836962
+ - 0.015296109
+ - 0.00071910815
+ - 0.0017006737
+ - 0.36754182
+ - 0.04196885
+ - 0.0015316868
+ - 0.002027519
+ - 0.01756849
+ - 0.0006515085
+ - 0.007488573
+ - 0.45273393
+ - 0.03304443
+ - 0.019093875
+ - 0.011796412
+ laughterScore: 0
+ - frameNumber: 485
+ frameDelay: 0
+ Visemes:
+ - 0.03463287
+ - 0.01191817
+ - 0.0005389929
+ - 0.0013113432
+ - 0.4071458
+ - 0.13591632
+ - 0.002091392
+ - 0.0015467257
+ - 0.012314557
+ - 0.00047441316
+ - 0.0058993804
+ - 0.33358085
+ - 0.030501915
+ - 0.013835229
+ - 0.008292036
+ laughterScore: 0
+ - frameNumber: 486
+ frameDelay: 0
+ Visemes:
+ - 0.053614553
+ - 0.011201553
+ - 0.00043589025
+ - 0.0012171653
+ - 0.44316858
+ - 0.17118287
+ - 0.002972012
+ - 0.0012787902
+ - 0.00869592
+ - 0.0003503069
+ - 0.004864547
+ - 0.2573065
+ - 0.027933216
+ - 0.009890982
+ - 0.005887127
+ laughterScore: 0
+ - frameNumber: 487
+ frameDelay: 0
+ Visemes:
+ - 0.06838779
+ - 0.011549275
+ - 0.00045491
+ - 0.002243802
+ - 0.4098562
+ - 0.25735787
+ - 0.018772263
+ - 0.0023433042
+ - 0.0063445484
+ - 0.0002666487
+ - 0.0037523285
+ - 0.18436734
+ - 0.023063077
+ - 0.00696859
+ - 0.0042720614
+ laughterScore: 0
+ - frameNumber: 488
+ frameDelay: 0
+ Visemes:
+ - 0.101256944
+ - 0.009930121
+ - 0.0009281039
+ - 0.0035418984
+ - 0.439143
+ - 0.24296287
+ - 0.017929299
+ - 0.015134158
+ - 0.004895586
+ - 0.00021980658
+ - 0.0034802896
+ - 0.13186139
+ - 0.020575304
+ - 0.0049809855
+ - 0.0031602518
+ laughterScore: 0
+ - frameNumber: 489
+ frameDelay: 0
+ Visemes:
+ - 0.1100101
+ - 0.007758809
+ - 0.0025068424
+ - 0.0041467194
+ - 0.39913982
+ - 0.18152319
+ - 0.012955377
+ - 0.16167332
+ - 0.003588956
+ - 0.00016657815
+ - 0.002670036
+ - 0.09276975
+ - 0.015287686
+ - 0.0035134694
+ - 0.0022893578
+ laughterScore: 0
+ - frameNumber: 490
+ frameDelay: 0
+ Visemes:
+ - 0.106842026
+ - 0.0059019686
+ - 0.0022230735
+ - 0.0035890315
+ - 0.32197472
+ - 0.13037325
+ - 0.009251184
+ - 0.3351581
+ - 0.0025618752
+ - 0.00012206381
+ - 0.001949043
+ - 0.06501007
+ - 0.010938577
+ - 0.0024724805
+ - 0.0016325554
+ laughterScore: 0
+ - frameNumber: 491
+ frameDelay: 0
+ Visemes:
+ - 0.113218404
+ - 0.004449471
+ - 0.0018652673
+ - 0.0027357836
+ - 0.24175403
+ - 0.09415403
+ - 0.006794212
+ - 0.47521627
+ - 0.0019069795
+ - 0.00009646685
+ - 0.0014625306
+ - 0.04555535
+ - 0.007832268
+ - 0.0017576793
+ - 0.0012013103
+ laughterScore: 0
+ - frameNumber: 492
+ frameDelay: 0
+ Visemes:
+ - 0.18395022
+ - 0.0033189112
+ - 0.0017242348
+ - 0.0022731288
+ - 0.18731385
+ - 0.06969432
+ - 0.0052628815
+ - 0.5032089
+ - 0.0015198081
+ - 0.000090427886
+ - 0.0013408307
+ - 0.032188557
+ - 0.005874017
+ - 0.001269269
+ - 0.00097071537
+ laughterScore: 0
+ - frameNumber: 493
+ frameDelay: 0
+ Visemes:
+ - 0.2274211
+ - 0.002496267
+ - 0.0017029471
+ - 0.0019669007
+ - 0.14453988
+ - 0.05057989
+ - 0.0038798212
+ - 0.5354624
+ - 0.0013166085
+ - 0.00008718119
+ - 0.001320606
+ - 0.022912284
+ - 0.0045777573
+ - 0.0009293491
+ - 0.00080702663
+ laughterScore: 0
+ - frameNumber: 494
+ frameDelay: 0
+ Visemes:
+ - 0.2651407
+ - 0.001934887
+ - 0.0015154596
+ - 0.0017474887
+ - 0.11511463
+ - 0.036179155
+ - 0.0028656404
+ - 0.5508189
+ - 0.0015305593
+ - 0.0000863409
+ - 0.0013883264
+ - 0.016401866
+ - 0.0038558159
+ - 0.00071042025
+ - 0.0007097862
+ laughterScore: 0
+ - frameNumber: 495
+ frameDelay: 0
+ Visemes:
+ - 0.2633572
+ - 0.004444422
+ - 0.0017451907
+ - 0.0023513234
+ - 0.09597072
+ - 0.028407067
+ - 0.0023056879
+ - 0.5473996
+ - 0.028733723
+ - 0.00046430895
+ - 0.003010585
+ - 0.012562146
+ - 0.005169603
+ - 0.0011965286
+ - 0.002881959
+ laughterScore: 0
+ - frameNumber: 496
+ frameDelay: 0
+ Visemes:
+ - 0.27301395
+ - 0.005634754
+ - 0.0022895685
+ - 0.0023236615
+ - 0.07741529
+ - 0.03211735
+ - 0.0021526976
+ - 0.5517485
+ - 0.026275624
+ - 0.00049729564
+ - 0.0050768154
+ - 0.009994034
+ - 0.006160953
+ - 0.002298304
+ - 0.0030012047
+ laughterScore: 0
+ - frameNumber: 497
+ frameDelay: 0
+ Visemes:
+ - 0.30980867
+ - 0.0072210105
+ - 0.0022180013
+ - 0.0021265189
+ - 0.06236405
+ - 0.040133655
+ - 0.0020919447
+ - 0.52045995
+ - 0.022282867
+ - 0.00046639907
+ - 0.0071666115
+ - 0.008180893
+ - 0.008392344
+ - 0.00395566
+ - 0.0031314334
+ laughterScore: 0
+ - frameNumber: 498
+ frameDelay: 0
+ Visemes:
+ - 0.3736984
+ - 0.008189891
+ - 0.0019836882
+ - 0.002177288
+ - 0.05089922
+ - 0.047725793
+ - 0.0019627074
+ - 0.4483133
+ - 0.01863961
+ - 0.00047739092
+ - 0.014012929
+ - 0.008304612
+ - 0.010922678
+ - 0.009102636
+ - 0.0035898385
+ laughterScore: 0
+ - frameNumber: 499
+ frameDelay: 0
+ Visemes:
+ - 0.49356085
+ - 0.008610791
+ - 0.0018340534
+ - 0.0022131316
+ - 0.040564828
+ - 0.042126663
+ - 0.0017973839
+ - 0.3537843
+ - 0.014176767
+ - 0.00040936036
+ - 0.012788246
+ - 0.0072007705
+ - 0.010073292
+ - 0.007611886
+ - 0.0032476354
+ laughterScore: 0
+ - frameNumber: 500
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 501
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 502
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 503
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 504
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 505
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 506
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 507
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 508
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 509
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 510
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 511
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 512
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 513
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 514
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 515
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 516
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 517
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 518
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 519
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 520
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 521
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 522
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 523
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 524
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 525
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 526
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 527
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 528
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 529
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 530
+ frameDelay: 0
+ Visemes:
+ - 0.49217296
+ - 0.25724995
+ - 0.0009170356
+ - 0.09010732
+ - 0.04095299
+ - 0.0045047496
+ - 0.0017850385
+ - 0.0028686197
+ - 0.0035137425
+ - 0.00048644718
+ - 0.003683853
+ - 0.0055724834
+ - 0.09123342
+ - 0.0010432728
+ - 0.0039081015
+ laughterScore: 0
+ - frameNumber: 531
+ frameDelay: 0
+ Visemes:
+ - 0.35136327
+ - 0.1972202
+ - 0.00069858856
+ - 0.06413432
+ - 0.02890031
+ - 0.0033769351
+ - 0.0012773611
+ - 0.002018485
+ - 0.002529071
+ - 0.00038043753
+ - 0.0027285775
+ - 0.029344214
+ - 0.31172046
+ - 0.00074610556
+ - 0.0035615957
+ laughterScore: 0
+ - frameNumber: 532
+ frameDelay: 0
+ Visemes:
+ - 0.2516322
+ - 0.142309
+ - 0.0005226317
+ - 0.04505053
+ - 0.02041648
+ - 0.002564541
+ - 0.00094081095
+ - 0.0014409532
+ - 0.002000819
+ - 0.00032025285
+ - 0.0021100193
+ - 0.033021335
+ - 0.49393475
+ - 0.00053755136
+ - 0.0031981096
+ laughterScore: 0
+ - frameNumber: 533
+ frameDelay: 0
+ Visemes:
+ - 0.18118337
+ - 0.10053663
+ - 0.00037160027
+ - 0.031588167
+ - 0.014349346
+ - 0.001972543
+ - 0.00067943305
+ - 0.001045975
+ - 0.0014681654
+ - 0.0002605926
+ - 0.0015426098
+ - 0.028876107
+ - 0.63299394
+ - 0.00038736963
+ - 0.0027441164
+ laughterScore: 0
+ - frameNumber: 534
+ frameDelay: 0
+ Visemes:
+ - 0.13196732
+ - 0.07199776
+ - 0.0002971107
+ - 0.022177387
+ - 0.010398648
+ - 0.0019346874
+ - 0.0005999964
+ - 0.0010633066
+ - 0.0013170674
+ - 0.00041110275
+ - 0.0013668593
+ - 0.051023427
+ - 0.6931798
+ - 0.00034097047
+ - 0.011924551
+ laughterScore: 0
+ - frameNumber: 535
+ frameDelay: 0
+ Visemes:
+ - 0.09461663
+ - 0.05213674
+ - 0.0003632889
+ - 0.015613569
+ - 0.0075741285
+ - 0.0014550751
+ - 0.00047736254
+ - 0.0012070461
+ - 0.0015498542
+ - 0.0004320391
+ - 0.0012597021
+ - 0.06207581
+ - 0.7376965
+ - 0.0002984626
+ - 0.023243725
+ laughterScore: 0
+ - frameNumber: 536
+ frameDelay: 0
+ Visemes:
+ - 0.069229126
+ - 0.036586724
+ - 0.00036057565
+ - 0.010973462
+ - 0.0066973753
+ - 0.0010548612
+ - 0.00034450527
+ - 0.08947168
+ - 0.0012794228
+ - 0.0019187566
+ - 0.0040170583
+ - 0.09634351
+ - 0.6546451
+ - 0.0004813336
+ - 0.026596535
+ laughterScore: 0
+ - frameNumber: 537
+ frameDelay: 0
+ Visemes:
+ - 0.055339523
+ - 0.025902655
+ - 0.0005140189
+ - 0.008291683
+ - 0.010168772
+ - 0.0008478908
+ - 0.00028621295
+ - 0.34681106
+ - 0.0010434203
+ - 0.0015459335
+ - 0.0030083715
+ - 0.06794805
+ - 0.45927206
+ - 0.0003483603
+ - 0.01867203
+ laughterScore: 0
+ - frameNumber: 538
+ frameDelay: 0
+ Visemes:
+ - 0.050193086
+ - 0.018299926
+ - 0.00045852902
+ - 0.0068311887
+ - 0.011967184
+ - 0.0015979137
+ - 0.00025501783
+ - 0.52238375
+ - 0.00087170315
+ - 0.001178802
+ - 0.0023323984
+ - 0.04770739
+ - 0.32255983
+ - 0.00025076244
+ - 0.013112543
+ laughterScore: 0
+ - frameNumber: 539
+ frameDelay: 0
+ Visemes:
+ - 0.049565434
+ - 0.032504544
+ - 0.0014273438
+ - 0.0049576354
+ - 0.011545861
+ - 0.0027695643
+ - 0.00020097113
+ - 0.6012735
+ - 0.0007935733
+ - 0.00158864
+ - 0.0039868355
+ - 0.033470508
+ - 0.22788942
+ - 0.00021575307
+ - 0.027810467
+ laughterScore: 0
+ - frameNumber: 540
+ frameDelay: 0
+ Visemes:
+ - 0.03640087
+ - 0.03905545
+ - 0.0013655475
+ - 0.003487678
+ - 0.008399343
+ - 0.0022012875
+ - 0.00014200128
+ - 0.42175502
+ - 0.0008544093
+ - 0.0023563518
+ - 0.0039668204
+ - 0.023487007
+ - 0.16042304
+ - 0.00027271733
+ - 0.29583248
+ laughterScore: 0
+ - frameNumber: 541
+ frameDelay: 0
+ Visemes:
+ - 0.026533527
+ - 0.037683427
+ - 0.0015307646
+ - 0.0024481001
+ - 0.005912864
+ - 0.0016685586
+ - 0.00009995427
+ - 0.2952634
+ - 0.00067956577
+ - 0.001903465
+ - 0.0028875296
+ - 0.016479293
+ - 0.112468824
+ - 0.00023083857
+ - 0.49420995
+ laughterScore: 0
+ - frameNumber: 542
+ frameDelay: 0
+ Visemes:
+ - 0.025122454
+ - 0.031007016
+ - 0.0018080005
+ - 0.0017448595
+ - 0.0042836475
+ - 0.0017759043
+ - 0.00008358677
+ - 0.20673566
+ - 0.0005984302
+ - 0.0013907322
+ - 0.009364271
+ - 0.015351236
+ - 0.08211928
+ - 0.00096666906
+ - 0.6176483
+ laughterScore: 0
+ - frameNumber: 543
+ frameDelay: 0
+ Visemes:
+ - 0.02222938
+ - 0.022377556
+ - 0.0013454424
+ - 0.0012325807
+ - 0.0030421938
+ - 0.00151098
+ - 0.000062060964
+ - 0.144717
+ - 0.0007995952
+ - 0.0010179165
+ - 0.056561463
+ - 0.04134136
+ - 0.08369104
+ - 0.00086549006
+ - 0.61920595
+ laughterScore: 0
+ - frameNumber: 544
+ frameDelay: 0
+ Visemes:
+ - 0.018131305
+ - 0.015755018
+ - 0.000965162
+ - 0.00091379805
+ - 0.0022816902
+ - 0.0011346027
+ - 0.000051178773
+ - 0.10130301
+ - 0.0010236012
+ - 0.000789761
+ - 0.040966813
+ - 0.24449046
+ - 0.13472424
+ - 0.00078042166
+ - 0.43668896
+ laughterScore: 0
+ - frameNumber: 545
+ frameDelay: 0
+ Visemes:
+ - 0.016733367
+ - 0.01106822
+ - 0.0007515959
+ - 0.0010822624
+ - 0.002285158
+ - 0.0009562907
+ - 0.000048208167
+ - 0.07092952
+ - 0.0008226689
+ - 0.0010182527
+ - 0.030511674
+ - 0.38274932
+ - 0.17394157
+ - 0.00084575964
+ - 0.30625618
+ laughterScore: 0
+ - frameNumber: 546
+ frameDelay: 0
+ Visemes:
+ - 0.014409905
+ - 0.0078089084
+ - 0.0006343857
+ - 0.0012472023
+ - 0.0019233595
+ - 0.0010477396
+ - 0.000042777698
+ - 0.049683288
+ - 0.0008163948
+ - 0.0013452643
+ - 0.021681437
+ - 0.5533184
+ - 0.13081205
+ - 0.0006217043
+ - 0.21460725
+ laughterScore: 0
+ - frameNumber: 547
+ frameDelay: 0
+ Visemes:
+ - 0.012089156
+ - 0.0056720166
+ - 0.00053112843
+ - 0.0010296945
+ - 0.0016178534
+ - 0.00085400534
+ - 0.000034541215
+ - 0.034813855
+ - 0.0009765648
+ - 0.0012156374
+ - 0.015434685
+ - 0.67874515
+ - 0.09621846
+ - 0.00045229617
+ - 0.150315
+ laughterScore: 0
+ - frameNumber: 548
+ frameDelay: 0
+ Visemes:
+ - 0.011164987
+ - 0.004317961
+ - 0.00046114338
+ - 0.0008849376
+ - 0.002038996
+ - 0.0008118483
+ - 0.00005406201
+ - 0.024594583
+ - 0.0011176395
+ - 0.0012068071
+ - 0.011055904
+ - 0.76676404
+ - 0.06986576
+ - 0.0003503427
+ - 0.105310984
+ laughterScore: 0
+ - frameNumber: 549
+ frameDelay: 0
+ Visemes:
+ - 0.012843277
+ - 0.0114239575
+ - 0.001327848
+ - 0.0012512004
+ - 0.008643098
+ - 0.0007501864
+ - 0.00015397536
+ - 0.020678135
+ - 0.0021869098
+ - 0.0017222897
+ - 0.008087135
+ - 0.802431
+ - 0.054197185
+ - 0.00039298902
+ - 0.07391084
+ laughterScore: 0
+ - frameNumber: 550
+ frameDelay: 0
+ Visemes:
+ - 0.015949888
+ - 0.009907792
+ - 0.0014238162
+ - 0.014974467
+ - 0.15502748
+ - 0.0025471756
+ - 0.00035661715
+ - 0.0155093055
+ - 0.002147128
+ - 0.0017495216
+ - 0.006014724
+ - 0.680926
+ - 0.0411526
+ - 0.0004369268
+ - 0.051876526
+ laughterScore: 0
+ - frameNumber: 551
+ frameDelay: 0
+ Visemes:
+ - 0.013847401
+ - 0.007877839
+ - 0.0011715516
+ - 0.023614585
+ - 0.3862293
+ - 0.0029366328
+ - 0.00089275755
+ - 0.012667656
+ - 0.0016868558
+ - 0.0012668812
+ - 0.004272001
+ - 0.47789153
+ - 0.028983273
+ - 0.0003379935
+ - 0.03632373
+ laughterScore: 0
+ - frameNumber: 552
+ frameDelay: 0
+ Visemes:
+ - 0.018174468
+ - 0.0064311996
+ - 0.0013094877
+ - 0.036979504
+ - 0.43605623
+ - 0.0026847892
+ - 0.0015532894
+ - 0.11059325
+ - 0.0012916649
+ - 0.0009002725
+ - 0.0030331353
+ - 0.3348666
+ - 0.020427475
+ - 0.000250353
+ - 0.02544825
+ laughterScore: 0
+ - frameNumber: 553
+ frameDelay: 0
+ Visemes:
+ - 0.02475354
+ - 0.0055886563
+ - 0.0015523022
+ - 0.033806253
+ - 0.35181183
+ - 0.002675254
+ - 0.0014289726
+ - 0.3070472
+ - 0.0011167413
+ - 0.00064740126
+ - 0.0022768078
+ - 0.23461229
+ - 0.01462312
+ - 0.00020190806
+ - 0.017857704
+ laughterScore: 0
+ - frameNumber: 554
+ frameDelay: 0
+ Visemes:
+ - 0.027850688
+ - 0.004102161
+ - 0.0013162585
+ - 0.028115507
+ - 0.27218366
+ - 0.0021647164
+ - 0.0012365021
+ - 0.47107744
+ - 0.0010946203
+ - 0.00057882874
+ - 0.0024088633
+ - 0.16445805
+ - 0.010686377
+ - 0.0001838765
+ - 0.012542429
+ laughterScore: 0
+ - frameNumber: 555
+ frameDelay: 0
+ Visemes:
+ - 0.02863065
+ - 0.003009235
+ - 0.00096274086
+ - 0.03550817
+ - 0.2113315
+ - 0.0018572954
+ - 0.0009037826
+ - 0.53524584
+ - 0.003437468
+ - 0.0014107608
+ - 0.03252399
+ - 0.118090436
+ - 0.016083416
+ - 0.001560776
+ - 0.009443922
+ laughterScore: 0
+ - frameNumber: 556
+ frameDelay: 0
+ Visemes:
+ - 0.085341394
+ - 0.0023950336
+ - 0.00083898654
+ - 0.027218549
+ - 0.1614732
+ - 0.002180808
+ - 0.0009661212
+ - 0.4561825
+ - 0.003033233
+ - 0.002052542
+ - 0.103923276
+ - 0.10072222
+ - 0.029734738
+ - 0.016596697
+ - 0.007340674
+ laughterScore: 0
+ - frameNumber: 557
+ frameDelay: 0
+ Visemes:
+ - 0.19599317
+ - 0.0022214083
+ - 0.0019324501
+ - 0.019967517
+ - 0.13109292
+ - 0.002666085
+ - 0.0007788747
+ - 0.41407645
+ - 0.0034705945
+ - 0.0018187263
+ - 0.091169104
+ - 0.079259895
+ - 0.03134544
+ - 0.018530592
+ - 0.0056767445
+ laughterScore: 0
+ - frameNumber: 558
+ frameDelay: 0
+ Visemes:
+ - 0.26206404
+ - 0.0019367189
+ - 0.0021968742
+ - 0.014371408
+ - 0.09617578
+ - 0.0024003768
+ - 0.0005911799
+ - 0.33117825
+ - 0.003615397
+ - 0.0015118767
+ - 0.11796123
+ - 0.0700862
+ - 0.027987063
+ - 0.063469686
+ - 0.0044538695
+ laughterScore: 0
+ - frameNumber: 559
+ frameDelay: 0
+ Visemes:
+ - 0.30545795
+ - 0.003482915
+ - 0.0023320105
+ - 0.010580744
+ - 0.070812196
+ - 0.0022597427
+ - 0.00052983046
+ - 0.2649274
+ - 0.0044698976
+ - 0.0013384348
+ - 0.15680528
+ - 0.06969938
+ - 0.03436578
+ - 0.06865918
+ - 0.0042792717
+ laughterScore: 0
+ - frameNumber: 560
+ frameDelay: 0
+ Visemes:
+ - 0.22604364
+ - 0.0027014972
+ - 0.0016692957
+ - 0.0074470644
+ - 0.049689382
+ - 0.0022063078
+ - 0.00037296145
+ - 0.18548028
+ - 0.0035941035
+ - 0.0009922109
+ - 0.32849616
+ - 0.04940929
+ - 0.026406558
+ - 0.11215546
+ - 0.0033357807
+ laughterScore: 0
+ - frameNumber: 561
+ frameDelay: 0
+ Visemes:
+ - 0.16807269
+ - 0.0019780858
+ - 0.0011916226
+ - 0.005224609
+ - 0.03486465
+ - 0.0016423126
+ - 0.00026435606
+ - 0.12984127
+ - 0.0053794626
+ - 0.0008696393
+ - 0.38562715
+ - 0.035041865
+ - 0.019499987
+ - 0.20802787
+ - 0.0024744328
+ laughterScore: 0
+ - frameNumber: 562
+ frameDelay: 0
+ Visemes:
+ - 0.1215855
+ - 0.0014140006
+ - 0.0008416221
+ - 0.0036655925
+ - 0.02444426
+ - 0.001186314
+ - 0.00018623033
+ - 0.090892084
+ - 0.005294443
+ - 0.0015386867
+ - 0.509899
+ - 0.024754781
+ - 0.013680248
+ - 0.19886103
+ - 0.0017561709
+ laughterScore: 0
+ - frameNumber: 563
+ frameDelay: 0
+ Visemes:
+ - 0.085371405
+ - 0.0009909222
+ - 0.0005895163
+ - 0.0025662805
+ - 0.01711264
+ - 0.00083828287
+ - 0.00013041991
+ - 0.0636245
+ - 0.003798598
+ - 0.00390811
+ - 0.65069366
+ - 0.017342184
+ - 0.00957722
+ - 0.14222649
+ - 0.001229761
+ laughterScore: 0
+ - frameNumber: 564
+ frameDelay: 0
+ Visemes:
+ - 0.060442865
+ - 0.00070030475
+ - 0.00041368316
+ - 0.0017977216
+ - 0.011984706
+ - 0.0006054566
+ - 0.00009249234
+ - 0.04453747
+ - 0.0028319338
+ - 0.103402354
+ - 0.65024537
+ - 0.01219004
+ - 0.006708203
+ - 0.10318441
+ - 0.00086293713
+ laughterScore: 0
+ - frameNumber: 565
+ frameDelay: 0
+ Visemes:
+ - 0.043398235
+ - 0.0005153511
+ - 0.0002954634
+ - 0.0012604921
+ - 0.00839823
+ - 0.00047428015
+ - 0.00006746807
+ - 0.031177571
+ - 0.0021644884
+ - 0.33712304
+ - 0.4872099
+ - 0.008588821
+ - 0.0047042053
+ - 0.07401373
+ - 0.0006087152
+ laughterScore: 0
+ - frameNumber: 566
+ frameDelay: 0
+ Visemes:
+ - 0.03146099
+ - 0.0003798056
+ - 0.0002102943
+ - 0.00088421453
+ - 0.005889723
+ - 0.0003969624
+ - 0.00004791503
+ - 0.021825831
+ - 0.0016207448
+ - 0.5299172
+ - 0.34531778
+ - 0.006063459
+ - 0.003297987
+ - 0.052254282
+ - 0.00043282664
+ laughterScore: 0
+ - frameNumber: 567
+ frameDelay: 0
+ Visemes:
+ - 0.023161676
+ - 0.0002837282
+ - 0.00015052505
+ - 0.00062295137
+ - 0.0042082
+ - 0.0004318707
+ - 0.000033710512
+ - 0.015280638
+ - 0.0013685052
+ - 0.667425
+ - 0.24272236
+ - 0.004370242
+ - 0.0023205392
+ - 0.037274353
+ - 0.00034569693
+ laughterScore: 0
+ - frameNumber: 568
+ frameDelay: 0
+ Visemes:
+ - 0.018391844
+ - 0.00021195003
+ - 0.00013074788
+ - 0.00044424244
+ - 0.005921833
+ - 0.00032852654
+ - 0.000023653645
+ - 0.010701057
+ - 0.0046855547
+ - 0.72904503
+ - 0.18104213
+ - 0.003225244
+ - 0.001647836
+ - 0.04384075
+ - 0.00035954965
+ laughterScore: 0
+ - frameNumber: 569
+ frameDelay: 0
+ Visemes:
+ - 0.017834235
+ - 0.00016105859
+ - 0.00012742452
+ - 0.00031486317
+ - 0.0061162575
+ - 0.00028495412
+ - 0.000016660706
+ - 0.007502016
+ - 0.007874534
+ - 0.62754625
+ - 0.20449972
+ - 0.0025263273
+ - 0.0011779087
+ - 0.12369745
+ - 0.00032027822
+ laughterScore: 0
+ - frameNumber: 570
+ frameDelay: 0
+ Visemes:
+ - 0.0150092915
+ - 0.00011973055
+ - 0.00010352725
+ - 0.00022216604
+ - 0.004509539
+ - 0.00029703364
+ - 0.000011763275
+ - 0.0052532335
+ - 0.0077507505
+ - 0.44840613
+ - 0.22239292
+ - 0.0018835857
+ - 0.000843971
+ - 0.2929256
+ - 0.0002707339
+ laughterScore: 0
+ - frameNumber: 571
+ frameDelay: 0
+ Visemes:
+ - 0.014426107
+ - 0.000100247664
+ - 0.00007898753
+ - 0.00015779404
+ - 0.0032682577
+ - 0.0003292934
+ - 0.00000861847
+ - 0.003678366
+ - 0.0069387667
+ - 0.31520826
+ - 0.25398782
+ - 0.0014758841
+ - 0.000633532
+ - 0.39941
+ - 0.0002980677
+ laughterScore: 0
+ - frameNumber: 572
+ frameDelay: 0
+ Visemes:
+ - 0.014140867
+ - 0.000110074616
+ - 0.0000604839
+ - 0.000112355236
+ - 0.0023538542
+ - 0.00030340735
+ - 0.0000064895803
+ - 0.0025758508
+ - 0.0065745236
+ - 0.22089785
+ - 0.22370595
+ - 0.0011957316
+ - 0.00052729243
+ - 0.5270667
+ - 0.00036855432
+ laughterScore: 0
+ - frameNumber: 573
+ frameDelay: 0
+ Visemes:
+ - 0.01651778
+ - 0.0002665602
+ - 0.00008168185
+ - 0.00009246628
+ - 0.0020521749
+ - 0.00037355727
+ - 0.000009941483
+ - 0.0018288307
+ - 0.041763023
+ - 0.15495405
+ - 0.18365082
+ - 0.0010857349
+ - 0.00050369464
+ - 0.59541655
+ - 0.0014031219
+ laughterScore: 0
+ - frameNumber: 574
+ frameDelay: 0
+ Visemes:
+ - 0.015146011
+ - 0.0010575474
+ - 0.00069429196
+ - 0.0003201541
+ - 0.0019589213
+ - 0.0005057032
+ - 0.00007729804
+ - 0.0015056677
+ - 0.26436716
+ - 0.10936829
+ - 0.13828565
+ - 0.0012853349
+ - 0.00042295206
+ - 0.46345767
+ - 0.0015473148
+ laughterScore: 0
+ - frameNumber: 575
+ frameDelay: 0
+ Visemes:
+ - 0.010982981
+ - 0.000804776
+ - 0.00064952124
+ - 0.000252566
+ - 0.0017794956
+ - 0.0003574981
+ - 0.00005946398
+ - 0.010543813
+ - 0.47222388
+ - 0.07665862
+ - 0.09833622
+ - 0.0009769307
+ - 0.0003151207
+ - 0.32497513
+ - 0.0010839398
+ laughterScore: 0
+ - frameNumber: 576
+ frameDelay: 0
+ Visemes:
+ - 0.011568323
+ - 0.0012242743
+ - 0.0011157063
+ - 0.00046283286
+ - 0.0078698825
+ - 0.00030142794
+ - 0.00014709224
+ - 0.23795979
+ - 0.3866325
+ - 0.053693272
+ - 0.0695857
+ - 0.00068855204
+ - 0.00029643657
+ - 0.22769009
+ - 0.0007640764
+ laughterScore: 0
+ - frameNumber: 577
+ frameDelay: 0
+ Visemes:
+ - 0.010524116
+ - 0.0011030862
+ - 0.0009294925
+ - 0.00042697886
+ - 0.0066507426
+ - 0.00023177176
+ - 0.00015947627
+ - 0.46099815
+ - 0.2717945
+ - 0.03760289
+ - 0.048784863
+ - 0.00048631028
+ - 0.00026503418
+ - 0.15949534
+ - 0.0005472231
+ laughterScore: 0
+ - frameNumber: 578
+ frameDelay: 0
+ Visemes:
+ - 0.010157893
+ - 0.0008779997
+ - 0.00071472366
+ - 0.0005437408
+ - 0.006945968
+ - 0.00021896584
+ - 0.00013569852
+ - 0.61608195
+ - 0.19077134
+ - 0.026357686
+ - 0.0341981
+ - 0.00035805296
+ - 0.0003036925
+ - 0.11190512
+ - 0.00042904826
+ laughterScore: 0
+ - frameNumber: 579
+ frameDelay: 0
+ Visemes:
+ - 0.010127334
+ - 0.0006812135
+ - 0.00061793526
+ - 0.0010059008
+ - 0.011317226
+ - 0.00042812695
+ - 0.00013006941
+ - 0.71802795
+ - 0.13523969
+ - 0.018505469
+ - 0.024074065
+ - 0.0003426103
+ - 0.0004957307
+ - 0.07865288
+ - 0.00035379725
+ laughterScore: 0
+ - frameNumber: 580
+ frameDelay: 0
+ Visemes:
+ - 0.0115517415
+ - 0.0005854127
+ - 0.0004712162
+ - 0.003744302
+ - 0.016898934
+ - 0.00077526737
+ - 0.00012931332
+ - 0.74060845
+ - 0.10650028
+ - 0.013045373
+ - 0.031321853
+ - 0.008135458
+ - 0.0076662283
+ - 0.057881266
+ - 0.0006848815
+ laughterScore: 0
+ - frameNumber: 581
+ frameDelay: 0
+ Visemes:
+ - 0.017548628
+ - 0.00047373743
+ - 0.00035254963
+ - 0.0067087845
+ - 0.016555527
+ - 0.0012167704
+ - 0.00012707083
+ - 0.5384303
+ - 0.07977831
+ - 0.009809232
+ - 0.09071192
+ - 0.08035874
+ - 0.033860482
+ - 0.12324737
+ - 0.0008205631
+ laughterScore: 0
+ - frameNumber: 582
+ frameDelay: 0
+ Visemes:
+ - 0.023065489
+ - 0.00042252697
+ - 0.00067546254
+ - 0.0060381955
+ - 0.013182975
+ - 0.0012469103
+ - 0.00017589825
+ - 0.3779873
+ - 0.05654337
+ - 0.011809927
+ - 0.1092715
+ - 0.13496569
+ - 0.06683369
+ - 0.19639543
+ - 0.0013856445
+ laughterScore: 0
+ - frameNumber: 583
+ frameDelay: 0
+ Visemes:
+ - 0.028640866
+ - 0.0007276337
+ - 0.003380595
+ - 0.0065275347
+ - 0.01629631
+ - 0.0012793728
+ - 0.0002276565
+ - 0.26522574
+ - 0.041795444
+ - 0.01593728
+ - 0.12856185
+ - 0.13460727
+ - 0.06804852
+ - 0.28694952
+ - 0.0017944068
+ laughterScore: 0
+ - frameNumber: 584
+ frameDelay: 0
+ Visemes:
+ - 0.023865962
+ - 0.00439832
+ - 0.004334595
+ - 0.0053618182
+ - 0.04304893
+ - 0.0054010954
+ - 0.0003174927
+ - 0.1857845
+ - 0.26126552
+ - 0.011564577
+ - 0.1012116
+ - 0.09688921
+ - 0.053301807
+ - 0.2018619
+ - 0.0013926734
+ laughterScore: 0
+ - frameNumber: 585
+ frameDelay: 0
+ Visemes:
+ - 0.023960883
+ - 0.006090456
+ - 0.003167724
+ - 0.003988981
+ - 0.046085946
+ - 0.0072586383
+ - 0.00031508598
+ - 0.13024113
+ - 0.44870678
+ - 0.0081689395
+ - 0.072645076
+ - 0.069241844
+ - 0.037767243
+ - 0.14135626
+ - 0.0010050047
+ laughterScore: 0
+ - frameNumber: 586
+ frameDelay: 0
+ Visemes:
+ - 0.022165915
+ - 0.008247135
+ - 0.0022642836
+ - 0.0038716781
+ - 0.07160827
+ - 0.006790895
+ - 0.00030086347
+ - 0.091268934
+ - 0.5604954
+ - 0.005737013
+ - 0.051901523
+ - 0.04880549
+ - 0.026788317
+ - 0.09897507
+ - 0.0007792343
+ laughterScore: 0
+ - frameNumber: 587
+ frameDelay: 0
+ Visemes:
+ - 0.025105443
+ - 0.008111045
+ - 0.0017099069
+ - 0.012631955
+ - 0.07702859
+ - 0.014454469
+ - 0.0003258527
+ - 0.064073086
+ - 0.623487
+ - 0.0042484077
+ - 0.03864206
+ - 0.03632641
+ - 0.023429707
+ - 0.06940666
+ - 0.0010194723
+ laughterScore: 0
+ - frameNumber: 588
+ frameDelay: 0
+ Visemes:
+ - 0.02532048
+ - 0.006391126
+ - 0.0012855346
+ - 0.014768802
+ - 0.07114171
+ - 0.0114791095
+ - 0.0003501858
+ - 0.04497273
+ - 0.5824405
+ - 0.0052422793
+ - 0.06703263
+ - 0.043957956
+ - 0.061553985
+ - 0.060427673
+ - 0.0036353567
+ laughterScore: 0
+ - frameNumber: 589
+ frameDelay: 0
+ Visemes:
+ - 0.030477304
+ - 0.00473344
+ - 0.0009776901
+ - 0.011433775
+ - 0.050871152
+ - 0.008728032
+ - 0.00029799735
+ - 0.03156928
+ - 0.4184786
+ - 0.009202629
+ - 0.07923032
+ - 0.061402887
+ - 0.086091995
+ - 0.19278136
+ - 0.013723603
+ laughterScore: 0
+ - frameNumber: 590
+ frameDelay: 0
+ Visemes:
+ - 0.030612769
+ - 0.003601356
+ - 0.00091950287
+ - 0.009152042
+ - 0.037654366
+ - 0.00724203
+ - 0.00023845221
+ - 0.022195691
+ - 0.29511452
+ - 0.008550096
+ - 0.080237955
+ - 0.0476727
+ - 0.06631621
+ - 0.3684144
+ - 0.02207796
+ laughterScore: 0
+ - frameNumber: 591
+ frameDelay: 0
+ Visemes:
+ - 0.026953174
+ - 0.0026244342
+ - 0.00075953733
+ - 0.0068638003
+ - 0.027941871
+ - 0.0054758545
+ - 0.00017083417
+ - 0.015570007
+ - 0.20746051
+ - 0.0068664327
+ - 0.07722535
+ - 0.03490134
+ - 0.04810243
+ - 0.50583255
+ - 0.0332519
+ laughterScore: 0
+ - frameNumber: 592
+ frameDelay: 0
+ Visemes:
+ - 0.023568755
+ - 0.0019085729
+ - 0.0006524623
+ - 0.005144009
+ - 0.020026462
+ - 0.004735161
+ - 0.00012284145
+ - 0.010919462
+ - 0.14566831
+ - 0.0052930326
+ - 0.07293373
+ - 0.025435751
+ - 0.03449475
+ - 0.6148053
+ - 0.034291446
+ laughterScore: 0
+ - frameNumber: 593
+ frameDelay: 0
+ Visemes:
+ - 0.027129477
+ - 0.0015659045
+ - 0.0006527585
+ - 0.004598328
+ - 0.014599635
+ - 0.0057215765
+ - 0.00009692906
+ - 0.0076864483
+ - 0.10338486
+ - 0.0048154043
+ - 0.08334935
+ - 0.019553656
+ - 0.025766708
+ - 0.64998597
+ - 0.051093027
+ laughterScore: 0
+ - frameNumber: 594
+ frameDelay: 0
+ Visemes:
+ - 0.030995429
+ - 0.001211325
+ - 0.0007282128
+ - 0.008494864
+ - 0.013958339
+ - 0.010207579
+ - 0.0005165194
+ - 0.005496329
+ - 0.07566387
+ - 0.007319702
+ - 0.15504211
+ - 0.023015313
+ - 0.04752265
+ - 0.56806284
+ - 0.051764973
+ laughterScore: 0
+ - frameNumber: 595
+ frameDelay: 0
+ Visemes:
+ - 0.027832083
+ - 0.0035274723
+ - 0.000698605
+ - 0.013889564
+ - 0.028571608
+ - 0.013586538
+ - 0.0044495957
+ - 0.004679305
+ - 0.20314363
+ - 0.006042068
+ - 0.1352194
+ - 0.025248222
+ - 0.07607612
+ - 0.4206459
+ - 0.03639
+ laughterScore: 0
+ - frameNumber: 596
+ frameDelay: 0
+ Visemes:
+ - 0.023464292
+ - 0.0029509258
+ - 0.0005185789
+ - 0.011234408
+ - 0.024586067
+ - 0.010096871
+ - 0.0033602556
+ - 0.0033414143
+ - 0.42642835
+ - 0.0042692735
+ - 0.096977964
+ - 0.018663418
+ - 0.05383989
+ - 0.29476097
+ - 0.025507402
+ laughterScore: 0
+ - frameNumber: 597
+ frameDelay: 0
+ Visemes:
+ - 0.023509402
+ - 0.0022159645
+ - 0.00039148398
+ - 0.012983173
+ - 0.020592347
+ - 0.009929701
+ - 0.0023912396
+ - 0.0023915616
+ - 0.5643732
+ - 0.0030104404
+ - 0.072556295
+ - 0.020936398
+ - 0.040195018
+ - 0.20664614
+ - 0.01787771
+ laughterScore: 0
+ - frameNumber: 598
+ frameDelay: 0
+ Visemes:
+ - 0.028451275
+ - 0.0016133264
+ - 0.00029272173
+ - 0.010173357
+ - 0.020812228
+ - 0.008769703
+ - 0.0017220812
+ - 0.0016988184
+ - 0.5385659
+ - 0.00231625
+ - 0.060862377
+ - 0.09809848
+ - 0.068111226
+ - 0.14592978
+ - 0.012582502
+ laughterScore: 0
+ - frameNumber: 599
+ frameDelay: 0
+ Visemes:
+ - 0.029534657
+ - 0.001205385
+ - 0.00023511604
+ - 0.0074714622
+ - 0.024117382
+ - 0.0065977303
+ - 0.0012368752
+ - 0.0012271698
+ - 0.39243513
+ - 0.0020589342
+ - 0.053445444
+ - 0.19018921
+ - 0.1762346
+ - 0.10503347
+ - 0.008977399
+ laughterScore: 0
+ - frameNumber: 600
+ frameDelay: 0
+ Visemes:
+ - 0.036867328
+ - 0.000913545
+ - 0.00019062447
+ - 0.0056536123
+ - 0.039984055
+ - 0.005699173
+ - 0.0009121911
+ - 0.0010502408
+ - 0.2831092
+ - 0.0018065248
+ - 0.047492992
+ - 0.35738224
+ - 0.13836145
+ - 0.074224554
+ - 0.0063522486
+ laughterScore: 0
+ - frameNumber: 601
+ frameDelay: 0
+ Visemes:
+ - 0.03600841
+ - 0.0009651409
+ - 0.0001638305
+ - 0.0044284635
+ - 0.03176039
+ - 0.0059780027
+ - 0.0006735749
+ - 0.0008565651
+ - 0.20244883
+ - 0.0014572758
+ - 0.04901193
+ - 0.50347054
+ - 0.10516284
+ - 0.053027928
+ - 0.0045862473
+ laughterScore: 0
+ - frameNumber: 602
+ frameDelay: 0
+ Visemes:
+ - 0.03595096
+ - 0.00079438253
+ - 0.00014507287
+ - 0.0038471585
+ - 0.024692545
+ - 0.0053302916
+ - 0.00048891734
+ - 0.0007166906
+ - 0.14293718
+ - 0.0010978084
+ - 0.049119014
+ - 0.6140189
+ - 0.076601714
+ - 0.040939894
+ - 0.003319403
+ laughterScore: 0
+ - frameNumber: 603
+ frameDelay: 0
+ Visemes:
+ - 0.04136841
+ - 0.0007250477
+ - 0.00016112335
+ - 0.002917335
+ - 0.021175817
+ - 0.0043462194
+ - 0.00035454077
+ - 0.0005800713
+ - 0.10084405
+ - 0.0008536085
+ - 0.0715491
+ - 0.66389704
+ - 0.055141266
+ - 0.033528127
+ - 0.002558246
+ laughterScore: 0
+ - frameNumber: 604
+ frameDelay: 0
+ Visemes:
+ - 0.040816594
+ - 0.0012103519
+ - 0.00049832574
+ - 0.0026039742
+ - 0.051845413
+ - 0.0032840238
+ - 0.00035557194
+ - 0.0008659221
+ - 0.076045305
+ - 0.0006947143
+ - 0.09033616
+ - 0.6595777
+ - 0.039624054
+ - 0.026548464
+ - 0.0056934142
+ laughterScore: 0
+ - frameNumber: 605
+ frameDelay: 0
+ Visemes:
+ - 0.032525446
+ - 0.00092084805
+ - 0.0025063916
+ - 0.0027722074
+ - 0.04218728
+ - 0.0038920513
+ - 0.0017289227
+ - 0.0073786667
+ - 0.054235723
+ - 0.00052359543
+ - 0.07819102
+ - 0.7203853
+ - 0.028641716
+ - 0.020083463
+ - 0.004027386
+ laughterScore: 0
+ - frameNumber: 606
+ frameDelay: 0
+ Visemes:
+ - 0.029916935
+ - 0.0010581041
+ - 0.0025385339
+ - 0.0019852642
+ - 0.033848587
+ - 0.0028290814
+ - 0.0012299975
+ - 0.26002222
+ - 0.038289778
+ - 0.00039090114
+ - 0.056562297
+ - 0.5340708
+ - 0.02026912
+ - 0.014159887
+ - 0.0028285196
+ laughterScore: 0
+ - frameNumber: 607
+ frameDelay: 0
+ Visemes:
+ - 0.023894161
+ - 0.00080917135
+ - 0.001999722
+ - 0.001952401
+ - 0.026525103
+ - 0.0020880648
+ - 0.0008935019
+ - 0.47440577
+ - 0.02682742
+ - 0.00028064882
+ - 0.04021161
+ - 0.37392607
+ - 0.014276752
+ - 0.009918941
+ - 0.0019906648
+ laughterScore: 0
+ - frameNumber: 608
+ frameDelay: 0
+ Visemes:
+ - 0.021984097
+ - 0.0010160233
+ - 0.0015838176
+ - 0.010257731
+ - 0.023436073
+ - 0.0025736385
+ - 0.0008576748
+ - 0.6045916
+ - 0.01961788
+ - 0.0002557774
+ - 0.03213866
+ - 0.26202708
+ - 0.011007222
+ - 0.006974881
+ - 0.0016778731
+ laughterScore: 0
+ - frameNumber: 609
+ frameDelay: 0
+ Visemes:
+ - 0.021460935
+ - 0.0026298037
+ - 0.0014411327
+ - 0.029847752
+ - 0.019118126
+ - 0.0036967753
+ - 0.0013650943
+ - 0.5882307
+ - 0.032295235
+ - 0.00048442063
+ - 0.06339949
+ - 0.18933973
+ - 0.038985536
+ - 0.0050308425
+ - 0.0026744343
+ laughterScore: 0
+ - frameNumber: 610
+ frameDelay: 0
+ Visemes:
+ - 0.02113336
+ - 0.0071746577
+ - 0.0014068764
+ - 0.022994634
+ - 0.014866233
+ - 0.005066666
+ - 0.00116529
+ - 0.43755725
+ - 0.028667966
+ - 0.000997219
+ - 0.24152017
+ - 0.13993242
+ - 0.07074509
+ - 0.0038097543
+ - 0.0029624202
+ laughterScore: 0
+ - frameNumber: 611
+ frameDelay: 0
+ Visemes:
+ - 0.022304777
+ - 0.053349093
+ - 0.030968275
+ - 0.018676301
+ - 0.016022459
+ - 0.020783655
+ - 0.000970792
+ - 0.34147942
+ - 0.027118975
+ - 0.0018233344
+ - 0.30000448
+ - 0.0989194
+ - 0.05954958
+ - 0.002775357
+ - 0.005254113
+ laughterScore: 0
+ - frameNumber: 612
+ frameDelay: 0
+ Visemes:
+ - 0.022131281
+ - 0.13842839
+ - 0.16696455
+ - 0.01510373
+ - 0.023166608
+ - 0.020948261
+ - 0.0014723128
+ - 0.24407282
+ - 0.021827241
+ - 0.0027579851
+ - 0.22166523
+ - 0.069317825
+ - 0.04355281
+ - 0.0019499527
+ - 0.006641009
+ laughterScore: 0
+ - frameNumber: 613
+ frameDelay: 0
+ Visemes:
+ - 0.01955942
+ - 0.1966362
+ - 0.28219998
+ - 0.028958261
+ - 0.019515628
+ - 0.015453115
+ - 0.0014810236
+ - 0.17410392
+ - 0.01578057
+ - 0.0029979288
+ - 0.15565404
+ - 0.048569568
+ - 0.031221442
+ - 0.0013710449
+ - 0.00649791
+ laughterScore: 0
+ - frameNumber: 614
+ frameDelay: 0
+ Visemes:
+ - 0.01614869
+ - 0.1961179
+ - 0.34986943
+ - 0.02693865
+ - 0.014696892
+ - 0.011380147
+ - 0.0011090859
+ - 0.12200839
+ - 0.011536713
+ - 0.002277714
+ - 0.114181355
+ - 0.03519546
+ - 0.092318274
+ - 0.00097564084
+ - 0.005245702
+ laughterScore: 0
+ - frameNumber: 615
+ frameDelay: 0
+ Visemes:
+ - 0.012572459
+ - 0.13810642
+ - 0.26113442
+ - 0.020015078
+ - 0.010878853
+ - 0.008005948
+ - 0.0008201967
+ - 0.08558486
+ - 0.008152993
+ - 0.0016367923
+ - 0.08239899
+ - 0.026870675
+ - 0.3391728
+ - 0.0006855674
+ - 0.0039639743
+ laughterScore: 0
+ - frameNumber: 616
+ frameDelay: 0
+ Visemes:
+ - 0.009603148
+ - 0.09671907
+ - 0.18288626
+ - 0.0140886875
+ - 0.007830314
+ - 0.005613948
+ - 0.00058599014
+ - 0.05993808
+ - 0.005760585
+ - 0.0011555448
+ - 0.058576345
+ - 0.01947872
+ - 0.534223
+ - 0.00048266278
+ - 0.0030576512
+ laughterScore: 0
+ - frameNumber: 617
+ frameDelay: 0
+ Visemes:
+ - 0.0074811606
+ - 0.06771148
+ - 0.12803598
+ - 0.009890295
+ - 0.006010077
+ - 0.0039499677
+ - 0.00041916483
+ - 0.041984387
+ - 0.0040825508
+ - 0.00085625175
+ - 0.043253697
+ - 0.014076401
+ - 0.66921055
+ - 0.0003428612
+ - 0.0026952503
+ laughterScore: 0
+ - frameNumber: 618
+ frameDelay: 0
+ Visemes:
+ - 0.005629623
+ - 0.04740092
+ - 0.08966845
+ - 0.0069545503
+ - 0.004931002
+ - 0.0027746537
+ - 0.000357479
+ - 0.038270287
+ - 0.002917291
+ - 0.00073061616
+ - 0.03206856
+ - 0.010045106
+ - 0.756089
+ - 0.00024149375
+ - 0.0019210294
+ laughterScore: 0
+ - frameNumber: 619
+ frameDelay: 0
+ Visemes:
+ - 0.0050740372
+ - 0.03318936
+ - 0.06322116
+ - 0.004922038
+ - 0.0065352446
+ - 0.001986261
+ - 0.00042596378
+ - 0.27754298
+ - 0.0021218432
+ - 0.00060681097
+ - 0.023342237
+ - 0.007054533
+ - 0.57244
+ - 0.00016937434
+ - 0.001368085
+ laughterScore: 0
+ - frameNumber: 620
+ frameDelay: 0
+ Visemes:
+ - 0.0077260807
+ - 0.023297118
+ - 0.044362284
+ - 0.0037139412
+ - 0.01006417
+ - 0.0015112058
+ - 0.0006234031
+ - 0.4799574
+ - 0.0017629095
+ - 0.00051321124
+ - 0.016676
+ - 0.004957292
+ - 0.40375078
+ - 0.000118955555
+ - 0.0009652454
+ laughterScore: 0
+ - frameNumber: 621
+ frameDelay: 0
+ Visemes:
+ - 0.01222809
+ - 0.016817084
+ - 0.03117712
+ - 0.013999537
+ - 0.02212879
+ - 0.0012949555
+ - 0.0007700338
+ - 0.59895504
+ - 0.0018454937
+ - 0.00046848162
+ - 0.012181569
+ - 0.0035206587
+ - 0.28383696
+ - 0.00008398175
+ - 0.0006921931
+ laughterScore: 0
+ - frameNumber: 622
+ frameDelay: 0
+ Visemes:
+ - 0.018634532
+ - 0.013024659
+ - 0.022042766
+ - 0.035371583
+ - 0.038146235
+ - 0.0013913175
+ - 0.0015230828
+ - 0.6554567
+ - 0.001802604
+ - 0.00043924327
+ - 0.009039943
+ - 0.0025996882
+ - 0.19992538
+ - 0.000060941784
+ - 0.0005413068
+ laughterScore: 0
+ - frameNumber: 623
+ frameDelay: 0
+ Visemes:
+ - 0.049309768
+ - 0.012296459
+ - 0.01581072
+ - 0.06294161
+ - 0.05546888
+ - 0.035044238
+ - 0.0019155331
+ - 0.53756416
+ - 0.005725654
+ - 0.00035645845
+ - 0.008155355
+ - 0.0030217054
+ - 0.21067008
+ - 0.000060945968
+ - 0.0016584017
+ laughterScore: 0
+ - frameNumber: 624
+ frameDelay: 0
+ Visemes:
+ - 0.038469747
+ - 0.008743061
+ - 0.011126088
+ - 0.047208656
+ - 0.039918818
+ - 0.031044178
+ - 0.0014765554
+ - 0.37668738
+ - 0.004787832
+ - 0.0002739733
+ - 0.006826349
+ - 0.003716359
+ - 0.4267177
+ - 0.000051789015
+ - 0.0029514777
+ laughterScore: 0
+ - frameNumber: 625
+ frameDelay: 0
+ Visemes:
+ - 0.029848646
+ - 0.0062238043
+ - 0.0078051686
+ - 0.033156313
+ - 0.028048657
+ - 0.022823615
+ - 0.0010589971
+ - 0.26373327
+ - 0.004020157
+ - 0.00019852328
+ - 0.005024796
+ - 0.003485111
+ - 0.5918728
+ - 0.000040591458
+ - 0.0026595127
+ laughterScore: 0
+ - frameNumber: 626
+ frameDelay: 0
+ Visemes:
+ - 0.023720607
+ - 0.004463466
+ - 0.005476504
+ - 0.023224028
+ - 0.019851986
+ - 0.018961415
+ - 0.0007449786
+ - 0.18461516
+ - 0.005153483
+ - 0.00014168522
+ - 0.0037410518
+ - 0.00371294
+ - 0.7041
+ - 0.000033061213
+ - 0.0020595905
+ laughterScore: 0
+ - frameNumber: 627
+ frameDelay: 0
+ Visemes:
+ - 0.025033869
+ - 0.003499069
+ - 0.0038641898
+ - 0.016275233
+ - 0.014367345
+ - 0.02309664
+ - 0.0005432559
+ - 0.12924606
+ - 0.019599274
+ - 0.00010724628
+ - 0.0030739713
+ - 0.0063995407
+ - 0.7533772
+ - 0.000026581438
+ - 0.0014905153
+ laughterScore: 0
+ - frameNumber: 628
+ frameDelay: 0
+ Visemes:
+ - 0.025584051
+ - 0.0034269597
+ - 0.0027458975
+ - 0.011416916
+ - 0.010297289
+ - 0.06250003
+ - 0.000396386
+ - 0.09049853
+ - 0.040596806
+ - 0.00008208417
+ - 0.002474736
+ - 0.0069080996
+ - 0.741982
+ - 0.000019603667
+ - 0.0010705476
+ laughterScore: 0
+ - frameNumber: 629
+ frameDelay: 0
+ Visemes:
+ - 0.027562723
+ - 0.005952984
+ - 0.0019673996
+ - 0.008018697
+ - 0.007408105
+ - 0.13743366
+ - 0.000288087
+ - 0.06337261
+ - 0.04811386
+ - 0.000065089465
+ - 0.0021478685
+ - 0.006947088
+ - 0.68988883
+ - 0.000020439074
+ - 0.0008125265
+ laughterScore: 0
+ - frameNumber: 630
+ frameDelay: 0
+ Visemes:
+ - 0.028100323
+ - 0.037953153
+ - 0.0014858196
+ - 0.005778903
+ - 0.0053743594
+ - 0.18887813
+ - 0.00021791024
+ - 0.044431962
+ - 0.08952865
+ - 0.000067769666
+ - 0.0033125794
+ - 0.012292782
+ - 0.5811897
+ - 0.00006487303
+ - 0.0013230569
+ laughterScore: 0
+ - frameNumber: 631
+ frameDelay: 0
+ Visemes:
+ - 0.024369873
+ - 0.046309985
+ - 0.0011517651
+ - 0.004318037
+ - 0.0040440205
+ - 0.17535737
+ - 0.00017282358
+ - 0.031258617
+ - 0.25652868
+ - 0.00006137987
+ - 0.0034288387
+ - 0.010830982
+ - 0.4404059
+ - 0.00005114422
+ - 0.0017105676
+ laughterScore: 0
+ - frameNumber: 632
+ frameDelay: 0
+ Visemes:
+ - 0.018999733
+ - 0.07259607
+ - 0.0008413507
+ - 0.0032534741
+ - 0.0030622375
+ - 0.16303432
+ - 0.00012842582
+ - 0.021918219
+ - 0.39531928
+ - 0.00004617367
+ - 0.0024628805
+ - 0.007680037
+ - 0.30937263
+ - 0.000036220754
+ - 0.0012489336
+ laughterScore: 0
+ - frameNumber: 633
+ frameDelay: 0
+ Visemes:
+ - 0.016560802
+ - 0.14339563
+ - 0.00060877495
+ - 0.0029531224
+ - 0.0032469546
+ - 0.13848998
+ - 0.000098083045
+ - 0.015401335
+ - 0.4543609
+ - 0.000033481043
+ - 0.0017443642
+ - 0.005402369
+ - 0.21679287
+ - 0.00002552852
+ - 0.0008858001
+ laughterScore: 0
+ - frameNumber: 634
+ frameDelay: 0
+ Visemes:
+ - 0.016033301
+ - 0.20421994
+ - 0.00043423046
+ - 0.0033575175
+ - 0.00405333
+ - 0.11227177
+ - 0.00009791672
+ - 0.010860503
+ - 0.49095923
+ - 0.000024800966
+ - 0.0012645344
+ - 0.0038154272
+ - 0.15195519
+ - 0.000018493956
+ - 0.00063381635
+ laughterScore: 0
+ - frameNumber: 635
+ frameDelay: 0
+ Visemes:
+ - 0.016462944
+ - 0.23075546
+ - 0.0007669889
+ - 0.0066879243
+ - 0.030026976
+ - 0.10128655
+ - 0.0009659566
+ - 0.013069374
+ - 0.48922995
+ - 0.00002144021
+ - 0.0009047988
+ - 0.0026927472
+ - 0.10665434
+ - 0.000019687917
+ - 0.00045483987
+ laughterScore: 0
+ - frameNumber: 636
+ frameDelay: 0
+ Visemes:
+ - 0.01499419
+ - 0.22229157
+ - 0.00078983296
+ - 0.005537948
+ - 0.03183961
+ - 0.07789067
+ - 0.0007602065
+ - 0.15266638
+ - 0.41554567
+ - 0.000019359455
+ - 0.0007017173
+ - 0.0018925186
+ - 0.07473161
+ - 0.000016909264
+ - 0.00032182757
+ laughterScore: 0
+ - frameNumber: 637
+ frameDelay: 0
+ Visemes:
+ - 0.017710926
+ - 0.15996279
+ - 0.0046429676
+ - 0.01176556
+ - 0.025661606
+ - 0.059748415
+ - 0.0007621031
+ - 0.36113095
+ - 0.3041245
+ - 0.000024881308
+ - 0.0005298536
+ - 0.001334874
+ - 0.05234586
+ - 0.000016569102
+ - 0.00023813828
+ laughterScore: 0
+ - frameNumber: 638
+ frameDelay: 0
+ Visemes:
+ - 0.02544646
+ - 0.11555636
+ - 0.0057434523
+ - 0.013699269
+ - 0.022051156
+ - 0.050588056
+ - 0.00064370455
+ - 0.4926807
+ - 0.23517819
+ - 0.000027298574
+ - 0.00046249037
+ - 0.00097468216
+ - 0.03674504
+ - 0.000019204419
+ - 0.00018398174
+ laughterScore: 0
+ - frameNumber: 639
+ frameDelay: 0
+ Visemes:
+ - 0.042495336
+ - 0.09153236
+ - 0.006274796
+ - 0.0129459705
+ - 0.021258015
+ - 0.042878535
+ - 0.0005533937
+ - 0.5487783
+ - 0.20593758
+ - 0.00003307887
+ - 0.00041877525
+ - 0.0007950995
+ - 0.02589453
+ - 0.00004664883
+ - 0.00015763035
+ laughterScore: 0
+ - frameNumber: 640
+ frameDelay: 0
+ Visemes:
+ - 0.06274042
+ - 0.07002998
+ - 0.0054796212
+ - 0.011016199
+ - 0.022701599
+ - 0.03260476
+ - 0.00056083704
+ - 0.6061132
+ - 0.16900341
+ - 0.000044947366
+ - 0.00036852097
+ - 0.0007216786
+ - 0.018401742
+ - 0.00006657386
+ - 0.0001465778
+ laughterScore: 0
+ - frameNumber: 641
+ frameDelay: 0
+ Visemes:
+ - 0.13324524
+ - 0.05144185
+ - 0.0052415254
+ - 0.009346529
+ - 0.03649764
+ - 0.023652054
+ - 0.0006148476
+ - 0.6017468
+ - 0.12287061
+ - 0.00009698733
+ - 0.0005077024
+ - 0.00089650403
+ - 0.013568996
+ - 0.000075495955
+ - 0.00019726262
+ laughterScore: 0
+ - frameNumber: 642
+ frameDelay: 0
+ Visemes:
+ - 0.20615205
+ - 0.0371946
+ - 0.0046279915
+ - 0.01206028
+ - 0.072884284
+ - 0.017392434
+ - 0.00055929006
+ - 0.5185836
+ - 0.11251762
+ - 0.00050878845
+ - 0.0012888939
+ - 0.0026750783
+ - 0.012251759
+ - 0.00017352993
+ - 0.0011298588
+ laughterScore: 0
+ - frameNumber: 643
+ frameDelay: 0
+ Visemes:
+ - 0.21728647
+ - 0.027107472
+ - 0.004605115
+ - 0.00947964
+ - 0.068180144
+ - 0.0125209335
+ - 0.0005416948
+ - 0.5606416
+ - 0.07907614
+ - 0.0003937415
+ - 0.0029488236
+ - 0.00598335
+ - 0.009991795
+ - 0.00034895615
+ - 0.0008941296
+ laughterScore: 0
+ - frameNumber: 644
+ frameDelay: 0
+ Visemes:
+ - 0.2816122
+ - 0.02364134
+ - 0.005404259
+ - 0.008002699
+ - 0.06155999
+ - 0.0091298865
+ - 0.00055140146
+ - 0.5237092
+ - 0.05583874
+ - 0.00031374142
+ - 0.008396346
+ - 0.011240594
+ - 0.009230886
+ - 0.00059599255
+ - 0.00077276054
+ laughterScore: 0
+ - frameNumber: 645
+ frameDelay: 0
+ Visemes:
+ - 0.3746595
+ - 0.019172648
+ - 0.004772167
+ - 0.006167725
+ - 0.05330767
+ - 0.0065495726
+ - 0.00076518167
+ - 0.4653234
+ - 0.03920119
+ - 0.00022541551
+ - 0.008964787
+ - 0.011467593
+ - 0.008116634
+ - 0.0006538314
+ - 0.0006526676
+ laughterScore: 0
+ - frameNumber: 646
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 647
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 648
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 649
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 650
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 651
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 652
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 653
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 654
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 655
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 656
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 657
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 658
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 659
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 660
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 661
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 662
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 663
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 664
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 665
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 666
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 667
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 668
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 669
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 670
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 671
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 672
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 673
+ frameDelay: 0
+ Visemes:
+ - 0.4573755
+ - 0.0799125
+ - 0.0011442554
+ - 0.020412846
+ - 0.0075878766
+ - 0.005482911
+ - 0.0036132722
+ - 0.003461112
+ - 0.2564775
+ - 0.0033645835
+ - 0.006351355
+ - 0.005202475
+ - 0.11076762
+ - 0.0021549189
+ - 0.036691297
+ laughterScore: 0
+ - frameNumber: 674
+ frameDelay: 0
+ Visemes:
+ - 0.33051246
+ - 0.06931014
+ - 0.0018838927
+ - 0.025080344
+ - 0.021391498
+ - 0.00850481
+ - 0.010952648
+ - 0.0035135099
+ - 0.19350256
+ - 0.006857085
+ - 0.013582192
+ - 0.009410428
+ - 0.10270222
+ - 0.0038925896
+ - 0.19890364
+ laughterScore: 0
+ - frameNumber: 675
+ frameDelay: 0
+ Visemes:
+ - 0.23385565
+ - 0.23692057
+ - 0.002474343
+ - 0.08767839
+ - 0.042988315
+ - 0.007632274
+ - 0.008492663
+ - 0.0025298356
+ - 0.13994849
+ - 0.005130718
+ - 0.009748852
+ - 0.007205185
+ - 0.073077045
+ - 0.0027652679
+ - 0.13955244
+ laughterScore: 0
+ - frameNumber: 676
+ frameDelay: 0
+ Visemes:
+ - 0.16562812
+ - 0.37999272
+ - 0.0061645973
+ - 0.11702931
+ - 0.035688173
+ - 0.0055641374
+ - 0.0059882286
+ - 0.0017811932
+ - 0.098317996
+ - 0.0039996724
+ - 0.0112534
+ - 0.009499015
+ - 0.059383456
+ - 0.0019460418
+ - 0.09776399
+ laughterScore: 0
+ - frameNumber: 677
+ frameDelay: 0
+ Visemes:
+ - 0.12245986
+ - 0.28655466
+ - 0.004527426
+ - 0.09165178
+ - 0.026484527
+ - 0.00406642
+ - 0.0043390268
+ - 0.0012546448
+ - 0.06903898
+ - 0.0030310128
+ - 0.0109443385
+ - 0.14258157
+ - 0.16295731
+ - 0.0013987527
+ - 0.06870973
+ laughterScore: 0
+ - frameNumber: 678
+ frameDelay: 0
+ Visemes:
+ - 0.090622894
+ - 0.20248066
+ - 0.0032115444
+ - 0.06482916
+ - 0.01940518
+ - 0.0029492336
+ - 0.0031185993
+ - 0.0008897868
+ - 0.04842665
+ - 0.0023188882
+ - 0.008698979
+ - 0.20463142
+ - 0.29875284
+ - 0.0010125098
+ - 0.04865169
+ laughterScore: 0
+ - frameNumber: 679
+ frameDelay: 0
+ Visemes:
+ - 0.067228585
+ - 0.14290717
+ - 0.0022557648
+ - 0.04549385
+ - 0.013864819
+ - 0.002096679
+ - 0.002207774
+ - 0.0006316981
+ - 0.034097992
+ - 0.0020036532
+ - 0.006596106
+ - 0.20227851
+ - 0.4426896
+ - 0.0007423023
+ - 0.03490555
+ laughterScore: 0
+ - frameNumber: 680
+ frameDelay: 0
+ Visemes:
+ - 0.050941966
+ - 0.10032415
+ - 0.001589619
+ - 0.03187587
+ - 0.00997146
+ - 0.0015119944
+ - 0.0015981842
+ - 0.00047331018
+ - 0.024135107
+ - 0.0019033437
+ - 0.0048964852
+ - 0.17895095
+ - 0.56543064
+ - 0.000547699
+ - 0.025849225
+ laughterScore: 0
+ - frameNumber: 681
+ frameDelay: 0
+ Visemes:
+ - 0.036481686
+ - 0.0704324
+ - 0.0011279207
+ - 0.02234359
+ - 0.007297089
+ - 0.0011458857
+ - 0.0011812346
+ - 0.00047534786
+ - 0.017146716
+ - 0.0018480066
+ - 0.003939681
+ - 0.12854055
+ - 0.6894076
+ - 0.0003878327
+ - 0.01824448
+ laughterScore: 0
+ - frameNumber: 682
+ frameDelay: 0
+ Visemes:
+ - 0.026060905
+ - 0.049374998
+ - 0.0008371299
+ - 0.015690269
+ - 0.0058886977
+ - 0.00088030036
+ - 0.00094657525
+ - 0.011122901
+ - 0.012075477
+ - 0.0013443731
+ - 0.0032402119
+ - 0.090101294
+ - 0.76937187
+ - 0.0002722195
+ - 0.012792794
+ laughterScore: 0
+ - frameNumber: 683
+ frameDelay: 0
+ Visemes:
+ - 0.023206934
+ - 0.035116795
+ - 0.0016113389
+ - 0.013219014
+ - 0.025682325
+ - 0.0012155776
+ - 0.03914822
+ - 0.13354135
+ - 0.0088016465
+ - 0.0010280418
+ - 0.0027751776
+ - 0.06321335
+ - 0.6421352
+ - 0.00019520352
+ - 0.009109811
+ laughterScore: 0
+ - frameNumber: 684
+ frameDelay: 0
+ Visemes:
+ - 0.024031792
+ - 0.02543262
+ - 0.002098545
+ - 0.014234992
+ - 0.025480416
+ - 0.0016038879
+ - 0.08733617
+ - 0.30313295
+ - 0.006514032
+ - 0.0007548511
+ - 0.002146644
+ - 0.044282816
+ - 0.45641556
+ - 0.00013730703
+ - 0.006397434
+ laughterScore: 0
+ - frameNumber: 685
+ frameDelay: 0
+ Visemes:
+ - 0.033773597
+ - 0.018734105
+ - 0.0016674912
+ - 0.015030702
+ - 0.038151123
+ - 0.0014705814
+ - 0.15093446
+ - 0.37297708
+ - 0.0051231785
+ - 0.00058699655
+ - 0.0019969835
+ - 0.031024743
+ - 0.323945
+ - 0.0000966819
+ - 0.0044872984
+ laughterScore: 0
+ - frameNumber: 686
+ frameDelay: 0
+ Visemes:
+ - 0.043926924
+ - 0.014247198
+ - 0.0014823731
+ - 0.022652172
+ - 0.08156698
+ - 0.0013726901
+ - 0.17138231
+ - 0.39663124
+ - 0.004487479
+ - 0.0005083389
+ - 0.0023405014
+ - 0.021765271
+ - 0.23429483
+ - 0.00007203372
+ - 0.0032696808
+ laughterScore: 0
+ - frameNumber: 687
+ frameDelay: 0
+ Visemes:
+ - 0.037646677
+ - 0.011300095
+ - 0.0011109869
+ - 0.020515807
+ - 0.071461335
+ - 0.0018885969
+ - 0.12007193
+ - 0.27779353
+ - 0.0055753887
+ - 0.00038762565
+ - 0.006448797
+ - 0.05874663
+ - 0.38442564
+ - 0.00008195287
+ - 0.0025450077
+ laughterScore: 0
+ - frameNumber: 688
+ frameDelay: 0
+ Visemes:
+ - 0.03712004
+ - 0.008404389
+ - 0.00080061227
+ - 0.01457424
+ - 0.050538
+ - 0.0017772552
+ - 0.08412169
+ - 0.19448456
+ - 0.0055081677
+ - 0.0003017384
+ - 0.0062092757
+ - 0.123623766
+ - 0.47032148
+ - 0.00010826067
+ - 0.002106512
+ laughterScore: 0
+ - frameNumber: 689
+ frameDelay: 0
+ Visemes:
+ - 0.036617283
+ - 0.0062242504
+ - 0.000585862
+ - 0.0102993045
+ - 0.03634495
+ - 0.0051764855
+ - 0.05895421
+ - 0.13618088
+ - 0.008513718
+ - 0.00026173954
+ - 0.0058103334
+ - 0.24974099
+ - 0.4434259
+ - 0.00015622433
+ - 0.0017078671
+ laughterScore: 0
+ - frameNumber: 690
+ frameDelay: 0
+ Visemes:
+ - 0.036899693
+ - 0.004798349
+ - 0.00045223942
+ - 0.007264697
+ - 0.026408922
+ - 0.021494603
+ - 0.041395444
+ - 0.09541747
+ - 0.01933373
+ - 0.00027903664
+ - 0.005552664
+ - 0.38192904
+ - 0.35729182
+ - 0.00017927692
+ - 0.0013030538
+ laughterScore: 0
+ - frameNumber: 691
+ frameDelay: 0
+ Visemes:
+ - 0.03758152
+ - 0.0046025123
+ - 0.00037708489
+ - 0.005187011
+ - 0.0192762
+ - 0.02679411
+ - 0.029141622
+ - 0.066889614
+ - 0.03631881
+ - 0.0002272678
+ - 0.005238572
+ - 0.48321837
+ - 0.28403354
+ - 0.00015419499
+ - 0.0009595739
+ laughterScore: 0
+ - frameNumber: 692
+ frameDelay: 0
+ Visemes:
+ - 0.036799263
+ - 0.07327162
+ - 0.0005464315
+ - 0.0040721013
+ - 0.014143906
+ - 0.06205515
+ - 0.020515522
+ - 0.046941433
+ - 0.09833665
+ - 0.00019900486
+ - 0.007242116
+ - 0.41595268
+ - 0.21897084
+ - 0.00014241552
+ - 0.0008108958
+ laughterScore: 0
+ - frameNumber: 693
+ frameDelay: 0
+ Visemes:
+ - 0.028775806
+ - 0.2552189
+ - 0.00058972044
+ - 0.0030588477
+ - 0.01059065
+ - 0.086450875
+ - 0.014382939
+ - 0.032912932
+ - 0.11357548
+ - 0.00014530213
+ - 0.0058831214
+ - 0.29348513
+ - 0.15422189
+ - 0.00010277208
+ - 0.0006056478
+ laughterScore: 0
+ - frameNumber: 694
+ frameDelay: 0
+ Visemes:
+ - 0.023672963
+ - 0.31225443
+ - 0.0004599701
+ - 0.0028882688
+ - 0.008848831
+ - 0.14440572
+ - 0.0100899935
+ - 0.023081167
+ - 0.15562685
+ - 0.00010407651
+ - 0.0043433495
+ - 0.20564803
+ - 0.10805298
+ - 0.00007314147
+ - 0.00045025133
+ laughterScore: 0
+ - frameNumber: 695
+ frameDelay: 0
+ Visemes:
+ - 0.023699347
+ - 0.37466568
+ - 0.00037868976
+ - 0.007779532
+ - 0.014811686
+ - 0.11925739
+ - 0.007196
+ - 0.016259855
+ - 0.2119506
+ - 0.00008561344
+ - 0.0033939008
+ - 0.144128
+ - 0.07583726
+ - 0.00005433893
+ - 0.00050210627
+ laughterScore: 0
+ - frameNumber: 696
+ frameDelay: 0
+ Visemes:
+ - 0.021655817
+ - 0.41157943
+ - 0.0008214441
+ - 0.020410188
+ - 0.06899307
+ - 0.09969166
+ - 0.007827079
+ - 0.013714642
+ - 0.1975204
+ - 0.00008142546
+ - 0.0024985694
+ - 0.10127041
+ - 0.053445436
+ - 0.000050539322
+ - 0.00043992206
+ laughterScore: 0
+ - frameNumber: 697
+ frameDelay: 0
+ Visemes:
+ - 0.019933548
+ - 0.3203242
+ - 0.0010386303
+ - 0.015705422
+ - 0.12512437
+ - 0.089462124
+ - 0.0062020794
+ - 0.06615959
+ - 0.2453722
+ - 0.00006318907
+ - 0.0018074189
+ - 0.07090507
+ - 0.037546277
+ - 0.00003834761
+ - 0.00031756653
+ laughterScore: 0
+ - frameNumber: 698
+ frameDelay: 0
+ Visemes:
+ - 0.01837667
+ - 0.22923128
+ - 0.0043700016
+ - 0.029378213
+ - 0.103281826
+ - 0.06732758
+ - 0.0044323485
+ - 0.27889612
+ - 0.18710358
+ - 0.000052962296
+ - 0.001339281
+ - 0.04964162
+ - 0.026316598
+ - 0.000027818636
+ - 0.00022414431
+ laughterScore: 0
+ - frameNumber: 699
+ frameDelay: 0
+ Visemes:
+ - 0.021084625
+ - 0.16234615
+ - 0.017253244
+ - 0.0418925
+ - 0.083309166
+ - 0.05304325
+ - 0.003223978
+ - 0.42216414
+ - 0.14118634
+ - 0.000045914843
+ - 0.0009770782
+ - 0.034777034
+ - 0.018498648
+ - 0.000021952295
+ - 0.00017603973
+ laughterScore: 0
+ - frameNumber: 700
+ frameDelay: 0
+ Visemes:
+ - 0.03134904
+ - 0.114992574
+ - 0.024840835
+ - 0.03976076
+ - 0.08925699
+ - 0.041384473
+ - 0.0023884084
+ - 0.5096645
+ - 0.10683253
+ - 0.000095641095
+ - 0.0010440681
+ - 0.024728281
+ - 0.013390757
+ - 0.00006086935
+ - 0.00021032
+ laughterScore: 0
+ - frameNumber: 701
+ frameDelay: 0
+ Visemes:
+ - 0.04110285
+ - 0.08745236
+ - 0.021111472
+ - 0.029373799
+ - 0.067281276
+ - 0.11281995
+ - 0.0018385968
+ - 0.53199995
+ - 0.076792985
+ - 0.00010688897
+ - 0.0016190845
+ - 0.017999455
+ - 0.010184434
+ - 0.00010666946
+ - 0.00021023038
+ laughterScore: 0
+ - frameNumber: 702
+ frameDelay: 0
+ Visemes:
+ - 0.03420619
+ - 0.06136429
+ - 0.014904675
+ - 0.021069577
+ - 0.05241242
+ - 0.36517352
+ - 0.0014094035
+ - 0.3739836
+ - 0.05378271
+ - 0.00007897076
+ - 0.0013000511
+ - 0.012676903
+ - 0.0073633217
+ - 0.00010157551
+ - 0.0001727994
+ laughterScore: 0
+ - frameNumber: 703
+ frameDelay: 0
+ Visemes:
+ - 0.028050188
+ - 0.04319704
+ - 0.010482083
+ - 0.014831392
+ - 0.039599266
+ - 0.54666394
+ - 0.0010449641
+ - 0.26282895
+ - 0.037751034
+ - 0.0001094387
+ - 0.0010287409
+ - 0.008881886
+ - 0.005288846
+ - 0.00008464187
+ - 0.00015761402
+ laughterScore: 0
+ - frameNumber: 704
+ frameDelay: 0
+ Visemes:
+ - 0.025546858
+ - 0.030321902
+ - 0.0073483014
+ - 0.010511565
+ - 0.029144868
+ - 0.648021
+ - 0.00075615797
+ - 0.18410899
+ - 0.02671783
+ - 0.00013545023
+ - 0.021026546
+ - 0.009033335
+ - 0.0065388484
+ - 0.00022330033
+ - 0.0005650488
+ laughterScore: 0
+ - frameNumber: 705
+ frameDelay: 0
+ Visemes:
+ - 0.030444413
+ - 0.021253873
+ - 0.005148036
+ - 0.0075407564
+ - 0.021012451
+ - 0.46836177
+ - 0.0006143392
+ - 0.12891059
+ - 0.018880848
+ - 0.00019465716
+ - 0.13629447
+ - 0.09699923
+ - 0.05847056
+ - 0.0013962799
+ - 0.0044777202
+ laughterScore: 0
+ - frameNumber: 706
+ frameDelay: 0
+ Visemes:
+ - 0.03488499
+ - 0.014908182
+ - 0.0036139572
+ - 0.005339393
+ - 0.015321918
+ - 0.3288384
+ - 0.00051682186
+ - 0.09083533
+ - 0.015366415
+ - 0.00044970808
+ - 0.20897366
+ - 0.15909338
+ - 0.08685572
+ - 0.019399937
+ - 0.015602177
+ laughterScore: 0
+ - frameNumber: 707
+ frameDelay: 0
+ Visemes:
+ - 0.029389475
+ - 0.0114202695
+ - 0.0025831624
+ - 0.0038435268
+ - 0.03475184
+ - 0.23069416
+ - 0.001170352
+ - 0.06384795
+ - 0.20191357
+ - 0.00065551605
+ - 0.16667593
+ - 0.14321883
+ - 0.081429064
+ - 0.013657878
+ - 0.014748501
+ laughterScore: 0
+ - frameNumber: 708
+ frameDelay: 0
+ Visemes:
+ - 0.026206948
+ - 0.022239365
+ - 0.0020875714
+ - 0.0027314238
+ - 0.03944665
+ - 0.1654503
+ - 0.00088586955
+ - 0.044793848
+ - 0.39852244
+ - 0.00049655436
+ - 0.11863612
+ - 0.10101681
+ - 0.05751381
+ - 0.009564074
+ - 0.010408214
+ laughterScore: 0
+ - frameNumber: 709
+ frameDelay: 0
+ Visemes:
+ - 0.022109048
+ - 0.033762474
+ - 0.0028138831
+ - 0.00225099
+ - 0.1042368
+ - 0.12351733
+ - 0.00083865586
+ - 0.031444307
+ - 0.468498
+ - 0.000505035
+ - 0.08422689
+ - 0.07091418
+ - 0.040719282
+ - 0.006700488
+ - 0.007462633
+ laughterScore: 0
+ - frameNumber: 710
+ frameDelay: 0
+ Visemes:
+ - 0.016558558
+ - 0.31120178
+ - 0.0022028517
+ - 0.0021930176
+ - 0.079587445
+ - 0.08706046
+ - 0.00060697854
+ - 0.022042396
+ - 0.32840478
+ - 0.00050027634
+ - 0.059134033
+ - 0.049660053
+ - 0.030696336
+ - 0.004693071
+ - 0.0054578907
+ laughterScore: 0
+ - frameNumber: 711
+ frameDelay: 0
+ Visemes:
+ - 0.020927565
+ - 0.24592127
+ - 0.0016218949
+ - 0.0018415167
+ - 0.05673969
+ - 0.062622696
+ - 0.00051958975
+ - 0.015436789
+ - 0.23114137
+ - 0.0004926344
+ - 0.04253199
+ - 0.03516253
+ - 0.27748898
+ - 0.00329913
+ - 0.0042523104
+ laughterScore: 0
+ - frameNumber: 712
+ frameDelay: 0
+ Visemes:
+ - 0.025807813
+ - 0.17759167
+ - 0.001175271
+ - 0.0013265827
+ - 0.04075455
+ - 0.045518957
+ - 0.00053042825
+ - 0.010816866
+ - 0.16204152
+ - 0.00044590243
+ - 0.030054066
+ - 0.02516504
+ - 0.47246152
+ - 0.0023159825
+ - 0.003993806
+ laughterScore: 0
+ - frameNumber: 713
+ frameDelay: 0
+ Visemes:
+ - 0.024871357
+ - 0.12976547
+ - 0.0009875484
+ - 0.0010005538
+ - 0.030479405
+ - 0.032972097
+ - 0.00045444808
+ - 0.0075859646
+ - 0.11361777
+ - 0.00034042393
+ - 0.021111839
+ - 0.017882701
+ - 0.6141753
+ - 0.0016220694
+ - 0.0031329924
+ laughterScore: 0
+ - frameNumber: 714
+ frameDelay: 0
+ Visemes:
+ - 0.02281767
+ - 0.09109686
+ - 0.00075111736
+ - 0.0007479843
+ - 0.021476408
+ - 0.024300208
+ - 0.0003573065
+ - 0.005343593
+ - 0.079581946
+ - 0.00025102939
+ - 0.01485785
+ - 0.013083905
+ - 0.72168636
+ - 0.001136455
+ - 0.0025112971
+ laughterScore: 0
+ - frameNumber: 715
+ frameDelay: 0
+ Visemes:
+ - 0.020265553
+ - 0.06379552
+ - 0.0005407102
+ - 0.00054298295
+ - 0.015111225
+ - 0.019231506
+ - 0.0002637638
+ - 0.003753396
+ - 0.05574368
+ - 0.00018794382
+ - 0.010606414
+ - 0.0094346665
+ - 0.79724497
+ - 0.000797889
+ - 0.0024797744
+ laughterScore: 0
+ - frameNumber: 716
+ frameDelay: 0
+ Visemes:
+ - 0.019573905
+ - 0.04470192
+ - 0.0004416133
+ - 0.00040795302
+ - 0.010822147
+ - 0.015242062
+ - 0.00020269913
+ - 0.0026644187
+ - 0.03913456
+ - 0.0002007947
+ - 0.007798825
+ - 0.0070242207
+ - 0.8374544
+ - 0.00056933076
+ - 0.0137612065
+ laughterScore: 0
+ - frameNumber: 717
+ frameDelay: 0
+ Visemes:
+ - 0.015627293
+ - 0.031315777
+ - 0.00036037184
+ - 0.00030512176
+ - 0.007666895
+ - 0.01109496
+ - 0.00015220624
+ - 0.0018966848
+ - 0.027442358
+ - 0.00028327288
+ - 0.005714311
+ - 0.0050066244
+ - 0.8332805
+ - 0.00041719852
+ - 0.059436448
+ laughterScore: 0
+ - frameNumber: 718
+ frameDelay: 0
+ Visemes:
+ - 0.013887301
+ - 0.021935713
+ - 0.00035601083
+ - 0.00024573933
+ - 0.0054392563
+ - 0.007960798
+ - 0.00012860495
+ - 0.0014028795
+ - 0.01924472
+ - 0.0003126518
+ - 0.004194459
+ - 0.0035478463
+ - 0.73580647
+ - 0.00031832067
+ - 0.18521929
+ laughterScore: 0
+ - frameNumber: 719
+ frameDelay: 0
+ Visemes:
+ - 0.013506245
+ - 0.015370129
+ - 0.0005740713
+ - 0.00045259087
+ - 0.0040183226
+ - 0.0056807436
+ - 0.00011965735
+ - 0.0013060964
+ - 0.01354786
+ - 0.00046781922
+ - 0.003899227
+ - 0.0026940529
+ - 0.5316329
+ - 0.0003307496
+ - 0.4063996
+ laughterScore: 0
+ - frameNumber: 720
+ frameDelay: 0
+ Visemes:
+ - 0.013543704
+ - 0.010768207
+ - 0.0015210037
+ - 0.0009774363
+ - 0.0034290592
+ - 0.004045613
+ - 0.00012983664
+ - 0.019342335
+ - 0.00955801
+ - 0.001762466
+ - 0.015039369
+ - 0.0024076356
+ - 0.41217074
+ - 0.00044296743
+ - 0.50486165
+ laughterScore: 0
+ - frameNumber: 721
+ frameDelay: 0
+ Visemes:
+ - 0.013324262
+ - 0.0075650965
+ - 0.0021688433
+ - 0.00084037817
+ - 0.002885304
+ - 0.0028703373
+ - 0.000093249706
+ - 0.23414895
+ - 0.0067809713
+ - 0.0015491558
+ - 0.022473358
+ - 0.0018775114
+ - 0.31457424
+ - 0.0003727661
+ - 0.38847563
+ laughterScore: 0
+ - frameNumber: 722
+ frameDelay: 0
+ Visemes:
+ - 0.013169501
+ - 0.005345744
+ - 0.0016562286
+ - 0.0014060421
+ - 0.0032099136
+ - 0.002161716
+ - 0.00006832125
+ - 0.45113826
+ - 0.004831406
+ - 0.0011299115
+ - 0.016477756
+ - 0.0013268173
+ - 0.22434905
+ - 0.00026664368
+ - 0.27346274
+ laughterScore: 0
+ - frameNumber: 723
+ frameDelay: 0
+ Visemes:
+ - 0.014538655
+ - 0.003843566
+ - 0.0012328771
+ - 0.0034164838
+ - 0.006214881
+ - 0.0016254798
+ - 0.000065822365
+ - 0.6002073
+ - 0.0034340464
+ - 0.000825999
+ - 0.011777623
+ - 0.0010188916
+ - 0.15993665
+ - 0.00020497444
+ - 0.19165675
+ laughterScore: 0
+ - frameNumber: 724
+ frameDelay: 0
+ Visemes:
+ - 0.021708978
+ - 0.0029616202
+ - 0.000910014
+ - 0.012668398
+ - 0.04007216
+ - 0.0016198013
+ - 0.00009535371
+ - 0.6574344
+ - 0.0027775897
+ - 0.0005891422
+ - 0.008441397
+ - 0.0008256405
+ - 0.11538498
+ - 0.00020001776
+ - 0.13431056
+ laughterScore: 0
+ - frameNumber: 725
+ frameDelay: 0
+ Visemes:
+ - 0.028164163
+ - 0.0032270667
+ - 0.00069962564
+ - 0.06594263
+ - 0.22624867
+ - 0.0024569337
+ - 0.0002499309
+ - 0.4877158
+ - 0.0029246733
+ - 0.00041548532
+ - 0.006000175
+ - 0.00064908696
+ - 0.08106691
+ - 0.00020632782
+ - 0.09403252
+ laughterScore: 0
+ - frameNumber: 726
+ frameDelay: 0
+ Visemes:
+ - 0.024566796
+ - 0.0023438125
+ - 0.00050154835
+ - 0.06375964
+ - 0.43295386
+ - 0.002028777
+ - 0.0008258283
+ - 0.34242085
+ - 0.0027407922
+ - 0.00029442695
+ - 0.0042285584
+ - 0.00048449787
+ - 0.056822028
+ - 0.00019935393
+ - 0.06582922
+ laughterScore: 0
+ - frameNumber: 727
+ frameDelay: 0
+ Visemes:
+ - 0.022146082
+ - 0.0016995425
+ - 0.00042500993
+ - 0.049635418
+ - 0.5897523
+ - 0.0016638247
+ - 0.00242275
+ - 0.24013788
+ - 0.0019445701
+ - 0.00022257824
+ - 0.0032283629
+ - 0.00035497636
+ - 0.04004954
+ - 0.00014607409
+ - 0.046171043
+ laughterScore: 0
+ - frameNumber: 728
+ frameDelay: 0
+ Visemes:
+ - 0.018619105
+ - 0.0013043645
+ - 0.00032041318
+ - 0.035612486
+ - 0.64571786
+ - 0.0014448893
+ - 0.0045588543
+ - 0.17079927
+ - 0.0014549487
+ - 0.00023352071
+ - 0.055390377
+ - 0.0009722027
+ - 0.0307684
+ - 0.00018102521
+ - 0.032622274
+ laughterScore: 0
+ - frameNumber: 729
+ frameDelay: 0
+ Visemes:
+ - 0.016104463
+ - 0.0009691341
+ - 0.00025018697
+ - 0.025251035
+ - 0.45590216
+ - 0.0010776325
+ - 0.0036319655
+ - 0.119774476
+ - 0.0011668851
+ - 0.0025946577
+ - 0.2649893
+ - 0.0077949576
+ - 0.0586211
+ - 0.010025691
+ - 0.031846337
+ laughterScore: 0
+ - frameNumber: 730
+ frameDelay: 0
+ Visemes:
+ - 0.01161785
+ - 0.0009484939
+ - 0.00027471012
+ - 0.017739689
+ - 0.31932616
+ - 0.0007800397
+ - 0.0025453079
+ - 0.083842665
+ - 0.0009083076
+ - 0.0021165465
+ - 0.4785964
+ - 0.005540568
+ - 0.04321102
+ - 0.007231808
+ - 0.02532039
+ laughterScore: 0
+ - frameNumber: 731
+ frameDelay: 0
+ Visemes:
+ - 0.008685352
+ - 0.024024138
+ - 0.002880827
+ - 0.013100076
+ - 0.22461388
+ - 0.0028006546
+ - 0.0017874184
+ - 0.058695193
+ - 0.0010202549
+ - 0.002189985
+ - 0.59924495
+ - 0.003906827
+ - 0.030477233
+ - 0.0051532504
+ - 0.021419946
+ laughterScore: 0
+ - frameNumber: 732
+ frameDelay: 0
+ Visemes:
+ - 0.0093577085
+ - 0.27262178
+ - 0.0039738454
+ - 0.009399618
+ - 0.15929021
+ - 0.010245691
+ - 0.0013583228
+ - 0.041094705
+ - 0.0007456862
+ - 0.0015486259
+ - 0.4473252
+ - 0.0028189446
+ - 0.021544106
+ - 0.0036346368
+ - 0.015040956
+ laughterScore: 0
+ - frameNumber: 733
+ frameDelay: 0
+ Visemes:
+ - 0.011336574
+ - 0.46455073
+ - 0.0074330885
+ - 0.0076588895
+ - 0.11613423
+ - 0.010449326
+ - 0.0010050245
+ - 0.02881186
+ - 0.00055733696
+ - 0.0011311175
+ - 0.32014522
+ - 0.0020202491
+ - 0.015453037
+ - 0.002566274
+ - 0.010747063
+ laughterScore: 0
+ - frameNumber: 734
+ frameDelay: 0
+ Visemes:
+ - 0.016954575
+ - 0.5693741
+ - 0.037829172
+ - 0.007541876
+ - 0.08330911
+ - 0.007585286
+ - 0.00071973936
+ - 0.020288803
+ - 0.0005364374
+ - 0.0010990456
+ - 0.23057659
+ - 0.0014595746
+ - 0.011560118
+ - 0.00200945
+ - 0.00915615
+ laughterScore: 0
+ - frameNumber: 735
+ frameDelay: 0
+ Visemes:
+ - 0.015768506
+ - 0.52348363
+ - 0.028683424
+ - 0.005392924
+ - 0.058419794
+ - 0.005634224
+ - 0.00050525717
+ - 0.014214834
+ - 0.012941507
+ - 0.0019111438
+ - 0.29698402
+ - 0.0010880606
+ - 0.01341996
+ - 0.004436154
+ - 0.017116545
+ laughterScore: 0
+ - frameNumber: 736
+ frameDelay: 0
+ Visemes:
+ - 0.012824147
+ - 0.36813712
+ - 0.020321004
+ - 0.0037889988
+ - 0.041106284
+ - 0.003976821
+ - 0.00035636956
+ - 0.0099519715
+ - 0.018584885
+ - 0.0018172691
+ - 0.46774542
+ - 0.00092563406
+ - 0.02837964
+ - 0.007423672
+ - 0.014660726
+ laughterScore: 0
+ - frameNumber: 737
+ frameDelay: 0
+ Visemes:
+ - 0.015803784
+ - 0.25815037
+ - 0.015184564
+ - 0.002703435
+ - 0.031807262
+ - 0.0028983487
+ - 0.00025392423
+ - 0.0069851032
+ - 0.19612302
+ - 0.0015380736
+ - 0.39252222
+ - 0.0008298984
+ - 0.020601435
+ - 0.03828593
+ - 0.016312592
+ laughterScore: 0
+ - frameNumber: 738
+ frameDelay: 0
+ Visemes:
+ - 0.01438966
+ - 0.18093576
+ - 0.010804344
+ - 0.0019558102
+ - 0.022859989
+ - 0.002421334
+ - 0.00017923964
+ - 0.004915801
+ - 0.41445953
+ - 0.0013289887
+ - 0.275042
+ - 0.00065665116
+ - 0.014466122
+ - 0.042453878
+ - 0.01313089
+ laughterScore: 0
+ - frameNumber: 739
+ frameDelay: 0
+ Visemes:
+ - 0.013458632
+ - 0.12675452
+ - 0.00766698
+ - 0.0016070431
+ - 0.016382415
+ - 0.0034152097
+ - 0.00012909615
+ - 0.0034682842
+ - 0.5714209
+ - 0.0021089395
+ - 0.20106882
+ - 0.0021649855
+ - 0.010289041
+ - 0.03035774
+ - 0.009707365
+ laughterScore: 0
+ - frameNumber: 740
+ frameDelay: 0
+ Visemes:
+ - 0.020353246
+ - 0.08881483
+ - 0.005472749
+ - 0.002120499
+ - 0.011799311
+ - 0.0061516445
+ - 0.00011922707
+ - 0.0024529598
+ - 0.41094455
+ - 0.0016080894
+ - 0.22392121
+ - 0.18887761
+ - 0.008498997
+ - 0.02199453
+ - 0.0068705436
+ laughterScore: 0
+ - frameNumber: 741
+ frameDelay: 0
+ Visemes:
+ - 0.022588935
+ - 0.06221183
+ - 0.0038447217
+ - 0.0019972106
+ - 0.00868565
+ - 0.006388122
+ - 0.00010798368
+ - 0.0017408498
+ - 0.28889227
+ - 0.0011948025
+ - 0.18898535
+ - 0.3832578
+ - 0.009287825
+ - 0.01593479
+ - 0.0048818844
+ laughterScore: 0
+ - frameNumber: 742
+ frameDelay: 0
+ Visemes:
+ - 0.019655148
+ - 0.043574005
+ - 0.0027027945
+ - 0.0015565165
+ - 0.006773694
+ - 0.005043368
+ - 0.000095037736
+ - 0.0012346852
+ - 0.20283422
+ - 0.00095707277
+ - 0.14726064
+ - 0.5401646
+ - 0.011733133
+ - 0.012831066
+ - 0.0035840222
+ laughterScore: 0
+ - frameNumber: 743
+ frameDelay: 0
+ Visemes:
+ - 0.021362796
+ - 0.030586308
+ - 0.00192001
+ - 0.0012615068
+ - 0.007862458
+ - 0.0040323315
+ - 0.00022027962
+ - 0.0009537265
+ - 0.14508547
+ - 0.00094030483
+ - 0.1812847
+ - 0.56674016
+ - 0.02417653
+ - 0.010702409
+ - 0.0028710233
+ laughterScore: 0
+ - frameNumber: 744
+ frameDelay: 0
+ Visemes:
+ - 0.023839783
+ - 0.0220263
+ - 0.0015878853
+ - 0.0012261753
+ - 0.019479722
+ - 0.0040976526
+ - 0.0006734689
+ - 0.0011792055
+ - 0.12934463
+ - 0.0014772583
+ - 0.20473139
+ - 0.5497082
+ - 0.02821372
+ - 0.0099384105
+ - 0.0024762468
+ laughterScore: 0
+ - frameNumber: 745
+ frameDelay: 0
+ Visemes:
+ - 0.018082105
+ - 0.01578589
+ - 0.0015477345
+ - 0.0010219902
+ - 0.025198163
+ - 0.005022513
+ - 0.0005271741
+ - 0.00093181734
+ - 0.36377788
+ - 0.0011888894
+ - 0.1459698
+ - 0.39111656
+ - 0.02110297
+ - 0.006975699
+ - 0.0017508337
+ laughterScore: 0
+ - frameNumber: 746
+ frameDelay: 0
+ Visemes:
+ - 0.01416209
+ - 0.011311064
+ - 0.0011027514
+ - 0.0007892123
+ - 0.019460909
+ - 0.0068549234
+ - 0.00038933792
+ - 0.00068520266
+ - 0.54729694
+ - 0.0008344956
+ - 0.1023365
+ - 0.2738226
+ - 0.014829022
+ - 0.004894991
+ - 0.0012299799
+ laughterScore: 0
+ - frameNumber: 747
+ frameDelay: 0
+ Visemes:
+ - 0.011843981
+ - 0.00888635
+ - 0.00079172227
+ - 0.0010768219
+ - 0.020804528
+ - 0.0059812656
+ - 0.00028423572
+ - 0.0004888294
+ - 0.67073005
+ - 0.000593223
+ - 0.07206831
+ - 0.19170544
+ - 0.010432596
+ - 0.0034281954
+ - 0.0008844416
+ laughterScore: 0
+ - frameNumber: 748
+ frameDelay: 0
+ Visemes:
+ - 0.011261285
+ - 0.007897918
+ - 0.00059105497
+ - 0.0014724671
+ - 0.040371343
+ - 0.005273911
+ - 0.00023658329
+ - 0.00039972353
+ - 0.73665833
+ - 0.0004550936
+ - 0.050687425
+ - 0.1342183
+ - 0.00736621
+ - 0.00240545
+ - 0.0007048737
+ laughterScore: 0
+ - frameNumber: 749
+ frameDelay: 0
+ Visemes:
+ - 0.01040294
+ - 0.009554861
+ - 0.00065589655
+ - 0.0013304995
+ - 0.086920306
+ - 0.004818679
+ - 0.0002487417
+ - 0.00038279942
+ - 0.7482869
+ - 0.0003505576
+ - 0.035602275
+ - 0.09396154
+ - 0.0052316235
+ - 0.0016911236
+ - 0.0005612155
+ laughterScore: 0
+ - frameNumber: 750
+ frameDelay: 0
+ Visemes:
+ - 0.013191212
+ - 0.008022244
+ - 0.0004938422
+ - 0.0010588885
+ - 0.07743386
+ - 0.0051022004
+ - 0.00024243252
+ - 0.00032230822
+ - 0.79770464
+ - 0.0002639904
+ - 0.024967559
+ - 0.06578303
+ - 0.00374195
+ - 0.0011883356
+ - 0.0004834818
+ laughterScore: 0
+ - frameNumber: 751
+ frameDelay: 0
+ Visemes:
+ - 0.02007908
+ - 0.0070129177
+ - 0.00035875678
+ - 0.0008479093
+ - 0.06862513
+ - 0.006385887
+ - 0.0002752898
+ - 0.00028107958
+ - 0.82797194
+ - 0.00019913935
+ - 0.01757013
+ - 0.04606541
+ - 0.0028508923
+ - 0.00087947806
+ - 0.0005969567
+ laughterScore: 0
+ - frameNumber: 752
+ frameDelay: 0
+ Visemes:
+ - 0.048363283
+ - 0.0075402204
+ - 0.0002672631
+ - 0.00068947347
+ - 0.0694498
+ - 0.009588221
+ - 0.00027521604
+ - 0.00029799785
+ - 0.81406295
+ - 0.00015102523
+ - 0.012544684
+ - 0.032417033
+ - 0.0026699805
+ - 0.00084176357
+ - 0.0008410417
+ laughterScore: 0
+ - frameNumber: 753
+ frameDelay: 0
+ Visemes:
+ - 0.08927002
+ - 0.006830958
+ - 0.00020931836
+ - 0.0009960782
+ - 0.104663044
+ - 0.012403075
+ - 0.0004089491
+ - 0.00035752665
+ - 0.74674004
+ - 0.00014484882
+ - 0.009389829
+ - 0.022980401
+ - 0.0030234964
+ - 0.0011032578
+ - 0.0014790965
+ laughterScore: 0
+ - frameNumber: 754
+ frameDelay: 0
+ Visemes:
+ - 0.15607034
+ - 0.015691742
+ - 0.00043399766
+ - 0.01036242
+ - 0.122475624
+ - 0.011211492
+ - 0.0025509798
+ - 0.0015592207
+ - 0.58890545
+ - 0.0024889067
+ - 0.009046327
+ - 0.0197409
+ - 0.04157033
+ - 0.003574603
+ - 0.014317597
+ laughterScore: 0
+ - frameNumber: 755
+ frameDelay: 0
+ Visemes:
+ - 0.1594339
+ - 0.10875769
+ - 0.0003542234
+ - 0.020579295
+ - 0.103982516
+ - 0.00964852
+ - 0.0025322742
+ - 0.0013335547
+ - 0.47801504
+ - 0.0022636214
+ - 0.006671466
+ - 0.014471708
+ - 0.07542418
+ - 0.002631698
+ - 0.013900266
+ laughterScore: 0
+ - frameNumber: 756
+ frameDelay: 0
+ Visemes:
+ - 0.13488193
+ - 0.33432245
+ - 0.00026950057
+ - 0.014787652
+ - 0.072919905
+ - 0.0074182614
+ - 0.0017837612
+ - 0.00095484447
+ - 0.34064776
+ - 0.0016329273
+ - 0.004865296
+ - 0.0102136
+ - 0.053206477
+ - 0.0035691864
+ - 0.018526454
+ laughterScore: 0
+ - frameNumber: 757
+ frameDelay: 0
+ Visemes:
+ - 0.10057621
+ - 0.2640276
+ - 0.00019299726
+ - 0.010472236
+ - 0.051080927
+ - 0.005259214
+ - 0.0012497794
+ - 0.00067413354
+ - 0.24331445
+ - 0.0011792774
+ - 0.004888262
+ - 0.0073987218
+ - 0.03750004
+ - 0.25058544
+ - 0.021600742
+ laughterScore: 0
+ - frameNumber: 758
+ frameDelay: 0
+ Visemes:
+ - 0.07395122
+ - 0.18579069
+ - 0.00014074516
+ - 0.0073649776
+ - 0.03577814
+ - 0.003712737
+ - 0.0008756931
+ - 0.00047942498
+ - 0.1708719
+ - 0.0010012541
+ - 0.012119751
+ - 0.0057799416
+ - 0.026306028
+ - 0.45940953
+ - 0.016418004
+ laughterScore: 0
+ - frameNumber: 759
+ frameDelay: 0
+ Visemes:
+ - 0.057673898
+ - 0.13028055
+ - 0.000115914605
+ - 0.0052093407
+ - 0.025076538
+ - 0.0026913127
+ - 0.00061425625
+ - 0.00034428263
+ - 0.122343004
+ - 0.007445325
+ - 0.03710664
+ - 0.0068725436
+ - 0.01853917
+ - 0.5676683
+ - 0.018018937
+ laughterScore: 0
+ - frameNumber: 760
+ frameDelay: 0
+ Visemes:
+ - 0.04195672
+ - 0.09120337
+ - 0.000082984014
+ - 0.0036488033
+ - 0.017555386
+ - 0.0019038055
+ - 0.00043007158
+ - 0.00024187975
+ - 0.08567414
+ - 0.06167543
+ - 0.029183421
+ - 0.005317106
+ - 0.0130178835
+ - 0.6354283
+ - 0.012680749
+ laughterScore: 0
+ - frameNumber: 761
+ frameDelay: 0
+ Visemes:
+ - 0.034307696
+ - 0.06387806
+ - 0.00006901081
+ - 0.0025718499
+ - 0.012359844
+ - 0.0013861869
+ - 0.0003017815
+ - 0.00017508773
+ - 0.060113832
+ - 0.30687243
+ - 0.027987033
+ - 0.004993599
+ - 0.009246683
+ - 0.4667958
+ - 0.008941195
+ laughterScore: 0
+ - frameNumber: 762
+ frameDelay: 0
+ Visemes:
+ - 0.026531512
+ - 0.044829115
+ - 0.00009259929
+ - 0.002075847
+ - 0.009008503
+ - 0.0014389899
+ - 0.00022309099
+ - 0.0002425299
+ - 0.044376813
+ - 0.50762284
+ - 0.020188717
+ - 0.003585685
+ - 0.006732851
+ - 0.3267752
+ - 0.0062758266
+ laughterScore: 0
+ - frameNumber: 763
+ frameDelay: 0
+ Visemes:
+ - 0.022096122
+ - 0.033146936
+ - 0.012223224
+ - 0.0020585973
+ - 0.00687475
+ - 0.0064574094
+ - 0.00027998805
+ - 0.00035718706
+ - 0.031776614
+ - 0.6279051
+ - 0.014815349
+ - 0.0025341546
+ - 0.0063202386
+ - 0.22875822
+ - 0.0043962267
+ laughterScore: 0
+ - frameNumber: 764
+ frameDelay: 0
+ Visemes:
+ - 0.018758303
+ - 0.025597395
+ - 0.28343615
+ - 0.0017578381
+ - 0.0057996665
+ - 0.012057436
+ - 0.00022776471
+ - 0.00056079973
+ - 0.022281801
+ - 0.44944972
+ - 0.010465784
+ - 0.0017767642
+ - 0.004602016
+ - 0.16013809
+ - 0.0030905046
+ laughterScore: 0
+ - frameNumber: 765
+ frameDelay: 0
+ Visemes:
+ - 0.015360425
+ - 0.01912473
+ - 0.48032746
+ - 0.0015976708
+ - 0.004855767
+ - 0.016008655
+ - 0.00018726476
+ - 0.0006828251
+ - 0.015612854
+ - 0.32006377
+ - 0.0073963553
+ - 0.0012451011
+ - 0.0032491696
+ - 0.11210013
+ - 0.002187821
+ laughterScore: 0
+ - frameNumber: 766
+ frameDelay: 0
+ Visemes:
+ - 0.017545253
+ - 0.027174441
+ - 0.5588579
+ - 0.0034760842
+ - 0.03933858
+ - 0.018692419
+ - 0.0005282665
+ - 0.0014889726
+ - 0.011013559
+ - 0.23295812
+ - 0.005556931
+ - 0.0009065012
+ - 0.0023959815
+ - 0.078481816
+ - 0.0015851546
+ laughterScore: 0
+ - frameNumber: 767
+ frameDelay: 0
+ Visemes:
+ - 0.019113418
+ - 0.041085035
+ - 0.4160704
+ - 0.0040665567
+ - 0.2643179
+ - 0.017070208
+ - 0.0014393288
+ - 0.001286696
+ - 0.007819806
+ - 0.16464728
+ - 0.0043382114
+ - 0.0006527623
+ - 0.0018201547
+ - 0.054947603
+ - 0.001324645
+ laughterScore: 0
+ - frameNumber: 768
+ frameDelay: 0
+ Visemes:
+ - 0.015082482
+ - 0.03044043
+ - 0.2916295
+ - 0.0030909416
+ - 0.47734913
+ - 0.012191338
+ - 0.0041659446
+ - 0.001001561
+ - 0.005486153
+ - 0.11528299
+ - 0.003063019
+ - 0.00045779877
+ - 0.0013399574
+ - 0.038467113
+ - 0.0009516614
+ laughterScore: 0
+ - frameNumber: 769
+ frameDelay: 0
+ Visemes:
+ - 0.011989981
+ - 0.021576932
+ - 0.20438132
+ - 0.0025859557
+ - 0.6283477
+ - 0.00867008
+ - 0.0030906063
+ - 0.0008036873
+ - 0.003844164
+ - 0.08086545
+ - 0.0046903454
+ - 0.00032684673
+ - 0.0010119305
+ - 0.026944583
+ - 0.00087044993
+ laughterScore: 0
+ - frameNumber: 770
+ frameDelay: 0
+ Visemes:
+ - 0.012387123
+ - 0.015280307
+ - 0.14331658
+ - 0.0019230848
+ - 0.70254624
+ - 0.009385741
+ - 0.0030353528
+ - 0.00061485136
+ - 0.0027611535
+ - 0.0608711
+ - 0.011730776
+ - 0.014123536
+ - 0.00106747
+ - 0.020085292
+ - 0.0008714036
+ laughterScore: 0
+ - frameNumber: 771
+ frameDelay: 0
+ Visemes:
+ - 0.016854335
+ - 0.010920051
+ - 0.100396976
+ - 0.0014446634
+ - 0.49775162
+ - 0.010777529
+ - 0.003707394
+ - 0.00043928978
+ - 0.0021201265
+ - 0.06785813
+ - 0.06079009
+ - 0.19564562
+ - 0.0016193591
+ - 0.028056424
+ - 0.0016183878
+ laughterScore: 0
+ - frameNumber: 772
+ frameDelay: 0
+ Visemes:
+ - 0.020376585
+ - 0.007753559
+ - 0.070288904
+ - 0.0010462394
+ - 0.34971696
+ - 0.009788016
+ - 0.0029380568
+ - 0.0003102008
+ - 0.0021693811
+ - 0.12594698
+ - 0.15691538
+ - 0.20663139
+ - 0.0015428569
+ - 0.04240448
+ - 0.002170994
+ laughterScore: 0
+ - frameNumber: 773
+ frameDelay: 0
+ Visemes:
+ - 0.02044893
+ - 0.005523946
+ - 0.04920515
+ - 0.00079003663
+ - 0.24526669
+ - 0.007919942
+ - 0.002088724
+ - 0.00022338364
+ - 0.0026282433
+ - 0.19341666
+ - 0.24676794
+ - 0.17716415
+ - 0.0016560494
+ - 0.045198612
+ - 0.0017015497
+ laughterScore: 0
+ - frameNumber: 774
+ frameDelay: 0
+ Visemes:
+ - 0.04557371
+ - 0.00459888
+ - 0.034480687
+ - 0.00076438393
+ - 0.17633803
+ - 0.0071391356
+ - 0.0015921391
+ - 0.00021931069
+ - 0.007524512
+ - 0.21983607
+ - 0.31447166
+ - 0.13955149
+ - 0.003182704
+ - 0.043312155
+ - 0.0014151002
+ laughterScore: 0
+ - frameNumber: 775
+ frameDelay: 0
+ Visemes:
+ - 0.03693434
+ - 0.0034416846
+ - 0.024315054
+ - 0.0005513835
+ - 0.12589295
+ - 0.047622323
+ - 0.0013730029
+ - 0.00024708334
+ - 0.008261966
+ - 0.3163309
+ - 0.22969195
+ - 0.16200633
+ - 0.004429769
+ - 0.0348844
+ - 0.004016837
+ laughterScore: 0
+ - frameNumber: 776
+ frameDelay: 0
+ Visemes:
+ - 0.02827981
+ - 0.0025968442
+ - 0.017409025
+ - 0.00040741448
+ - 0.09104415
+ - 0.29618087
+ - 0.005713084
+ - 0.00021040489
+ - 0.0059344615
+ - 0.24539146
+ - 0.1623472
+ - 0.11383448
+ - 0.0032959527
+ - 0.024430385
+ - 0.0029244497
+ laughterScore: 0
+ - frameNumber: 777
+ frameDelay: 0
+ Visemes:
+ - 0.020960445
+ - 0.0018947714
+ - 0.012246562
+ - 0.0004495475
+ - 0.06607907
+ - 0.46299773
+ - 0.041095424
+ - 0.00018294575
+ - 0.0041659186
+ - 0.17237343
+ - 0.11389545
+ - 0.07968801
+ - 0.0048161456
+ - 0.017101895
+ - 0.002052623
+ laughterScore: 0
+ - frameNumber: 778
+ frameDelay: 0
+ Visemes:
+ - 0.01835177
+ - 0.0014167163
+ - 0.0086267525
+ - 0.00072031684
+ - 0.050963458
+ - 0.57301843
+ - 0.028874554
+ - 0.00014072354
+ - 0.0030930748
+ - 0.12116031
+ - 0.083632305
+ - 0.0559249
+ - 0.04054473
+ - 0.01198375
+ - 0.0015482036
+ laughterScore: 0
+ - frameNumber: 779
+ frameDelay: 0
+ Visemes:
+ - 0.014372056
+ - 0.0009994012
+ - 0.0060619046
+ - 0.00055268523
+ - 0.03580374
+ - 0.40229586
+ - 0.020222452
+ - 0.000100391386
+ - 0.0022133735
+ - 0.08531912
+ - 0.07055228
+ - 0.04984911
+ - 0.3008862
+ - 0.008414984
+ - 0.0023564338
+ laughterScore: 0
+ - frameNumber: 780
+ frameDelay: 0
+ Visemes:
+ - 0.014175513
+ - 0.000832545
+ - 0.004454193
+ - 0.0006066797
+ - 0.026937895
+ - 0.28984186
+ - 0.014233711
+ - 0.000108280154
+ - 0.0031758132
+ - 0.06252999
+ - 0.07703755
+ - 0.050998904
+ - 0.44259673
+ - 0.0060582412
+ - 0.006412126
+ laughterScore: 0
+ - frameNumber: 781
+ frameDelay: 0
+ Visemes:
+ - 0.01874354
+ - 0.0012325844
+ - 0.004174605
+ - 0.0016311996
+ - 0.106821395
+ - 0.20808636
+ - 0.010888144
+ - 0.00033194723
+ - 0.009431893
+ - 0.04518193
+ - 0.076733865
+ - 0.04211836
+ - 0.465395
+ - 0.0042743078
+ - 0.0049548885
+ laughterScore: 0
+ - frameNumber: 782
+ frameDelay: 0
+ Visemes:
+ - 0.016599152
+ - 0.0009673748
+ - 0.0031114789
+ - 0.0020437227
+ - 0.35724977
+ - 0.14725964
+ - 0.008169856
+ - 0.0003499425
+ - 0.008171904
+ - 0.03175231
+ - 0.057799652
+ - 0.02997993
+ - 0.32999128
+ - 0.002994369
+ - 0.0035596343
+ laughterScore: 0
+ - frameNumber: 783
+ frameDelay: 0
+ Visemes:
+ - 0.01652085
+ - 0.0009236833
+ - 0.0022889834
+ - 0.002757139
+ - 0.53655285
+ - 0.105255924
+ - 0.007018451
+ - 0.00030795988
+ - 0.006054246
+ - 0.022261962
+ - 0.04204146
+ - 0.02104644
+ - 0.23235746
+ - 0.0020976227
+ - 0.0025149735
+ laughterScore: 0
+ - frameNumber: 784
+ frameDelay: 0
+ Visemes:
+ - 0.021681774
+ - 0.0008719895
+ - 0.00172768
+ - 0.003232301
+ - 0.63293827
+ - 0.07416972
+ - 0.032262046
+ - 0.0013844096
+ - 0.0043877806
+ - 0.01566233
+ - 0.029968727
+ - 0.01475725
+ - 0.16368492
+ - 0.0014707424
+ - 0.001800044
+ laughterScore: 0
+ - frameNumber: 785
+ frameDelay: 0
+ Visemes:
+ - 0.02641061
+ - 0.0006427197
+ - 0.0012432381
+ - 0.0062922006
+ - 0.52532893
+ - 0.05203464
+ - 0.18026057
+ - 0.02855245
+ - 0.0031577013
+ - 0.011092397
+ - 0.021741113
+ - 0.010344153
+ - 0.1303264
+ - 0.0010373814
+ - 0.0015354694
+ laughterScore: 0
+ - frameNumber: 786
+ frameDelay: 0
+ Visemes:
+ - 0.023639474
+ - 0.00058101944
+ - 0.00088616746
+ - 0.0046161646
+ - 0.3703644
+ - 0.03696044
+ - 0.15541165
+ - 0.021052206
+ - 0.0023072711
+ - 0.008342539
+ - 0.021071898
+ - 0.007316809
+ - 0.33895415
+ - 0.0007415195
+ - 0.007754295
+ laughterScore: 0
+ - frameNumber: 787
+ frameDelay: 0
+ Visemes:
+ - 0.027765438
+ - 0.0035838622
+ - 0.00071594416
+ - 0.0035271775
+ - 0.260735
+ - 0.027737448
+ - 0.13143897
+ - 0.015400019
+ - 0.0021252253
+ - 0.0076658837
+ - 0.01995504
+ - 0.007377122
+ - 0.45129678
+ - 0.0005620398
+ - 0.04011402
+ laughterScore: 0
+ - frameNumber: 788
+ frameDelay: 0
+ Visemes:
+ - 0.029577373
+ - 0.0032995462
+ - 0.00055262214
+ - 0.002811951
+ - 0.18326539
+ - 0.02046901
+ - 0.13727924
+ - 0.011319367
+ - 0.0018008234
+ - 0.010221168
+ - 0.018123413
+ - 0.008637015
+ - 0.5149328
+ - 0.0006431941
+ - 0.057067063
+ laughterScore: 0
+ - frameNumber: 789
+ frameDelay: 0
+ Visemes:
+ - 0.035037108
+ - 0.0030410073
+ - 0.0005727893
+ - 0.003650737
+ - 0.13278079
+ - 0.050460532
+ - 0.112686224
+ - 0.010882195
+ - 0.0061613913
+ - 0.01984382
+ - 0.016671598
+ - 0.012773631
+ - 0.4388751
+ - 0.0018340491
+ - 0.15472901
+ laughterScore: 0
+ - frameNumber: 790
+ frameDelay: 0
+ Visemes:
+ - 0.04350066
+ - 0.002699582
+ - 0.0005035797
+ - 0.0033579092
+ - 0.094749674
+ - 0.15699358
+ - 0.08564882
+ - 0.0103855925
+ - 0.011392286
+ - 0.024315361
+ - 0.036451697
+ - 0.031392418
+ - 0.35306874
+ - 0.0032154198
+ - 0.14232464
+ laughterScore: 0
+ - frameNumber: 791
+ frameDelay: 0
+ Visemes:
+ - 0.05529166
+ - 0.0021608556
+ - 0.00052331726
+ - 0.0027984087
+ - 0.06843667
+ - 0.15668145
+ - 0.06088195
+ - 0.008053177
+ - 0.011034271
+ - 0.030987907
+ - 0.13842116
+ - 0.0688877
+ - 0.26206776
+ - 0.017814154
+ - 0.11595951
+ laughterScore: 0
+ - frameNumber: 792
+ frameDelay: 0
+ Visemes:
+ - 0.05313492
+ - 0.0016481435
+ - 0.00047402043
+ - 0.0020519
+ - 0.048430856
+ - 0.11374176
+ - 0.04310355
+ - 0.006050205
+ - 0.008391632
+ - 0.024355154
+ - 0.32790828
+ - 0.08443059
+ - 0.1841738
+ - 0.019663235
+ - 0.08244193
+ laughterScore: 0
+ - frameNumber: 793
+ frameDelay: 0
+ Visemes:
+ - 0.047779143
+ - 0.0012054195
+ - 0.00038909813
+ - 0.0014923903
+ - 0.034128655
+ - 0.080408685
+ - 0.030310167
+ - 0.0043796124
+ - 0.0063209953
+ - 0.018975044
+ - 0.48979238
+ - 0.07198465
+ - 0.13025112
+ - 0.024551293
+ - 0.05803134
+ laughterScore: 0
+ - frameNumber: 794
+ frameDelay: 0
+ Visemes:
+ - 0.04318872
+ - 0.0008849471
+ - 0.0002890005
+ - 0.001077656
+ - 0.02402622
+ - 0.056586705
+ - 0.02125335
+ - 0.0031073748
+ - 0.004958201
+ - 0.01396421
+ - 0.6132078
+ - 0.06385271
+ - 0.09196505
+ - 0.020890763
+ - 0.040747218
+ laughterScore: 0
+ - frameNumber: 795
+ frameDelay: 0
+ Visemes:
+ - 0.04413379
+ - 0.0007302256
+ - 0.0002156462
+ - 0.0007950927
+ - 0.017155081
+ - 0.03992265
+ - 0.014909338
+ - 0.0022159917
+ - 0.0044470397
+ - 0.010360112
+ - 0.6909517
+ - 0.060701326
+ - 0.065003015
+ - 0.019789698
+ - 0.028669268
+ laughterScore: 0
+ - frameNumber: 796
+ frameDelay: 0
+ Visemes:
+ - 0.039183833
+ - 0.13541968
+ - 0.0006233682
+ - 0.000652526
+ - 0.018132435
+ - 0.030795198
+ - 0.010441485
+ - 0.001610104
+ - 0.10992757
+ - 0.007451554
+ - 0.51966786
+ - 0.04383582
+ - 0.048270565
+ - 0.013895925
+ - 0.020092031
+ laughterScore: 0
+ - frameNumber: 797
+ frameDelay: 0
+ Visemes:
+ - 0.037008867
+ - 0.27750218
+ - 0.0011681068
+ - 0.00074557925
+ - 0.018858496
+ - 0.024436567
+ - 0.007316988
+ - 0.001219179
+ - 0.16966969
+ - 0.0053097964
+ - 0.36807317
+ - 0.030830657
+ - 0.034016114
+ - 0.009754413
+ - 0.0140902
+ laughterScore: 0
+ - frameNumber: 798
+ frameDelay: 0
+ Visemes:
+ - 0.032545038
+ - 0.46014744
+ - 0.0010293381
+ - 0.0013817293
+ - 0.015545908
+ - 0.017833086
+ - 0.0051479046
+ - 0.000908419
+ - 0.13938348
+ - 0.00376445
+ - 0.2594517
+ - 0.021666417
+ - 0.024233598
+ - 0.00686002
+ - 0.010101457
+ laughterScore: 0
+ - frameNumber: 799
+ frameDelay: 0
+ Visemes:
+ - 0.02814204
+ - 0.461407
+ - 0.0009996372
+ - 0.0031346057
+ - 0.014318286
+ - 0.014620568
+ - 0.0038977275
+ - 0.0008700075
+ - 0.106058344
+ - 0.0028805628
+ - 0.20871025
+ - 0.019983739
+ - 0.12216265
+ - 0.0049360474
+ - 0.007878493
+ laughterScore: 0
+ - frameNumber: 800
+ frameDelay: 0
+ Visemes:
+ - 0.022070814
+ - 0.32440275
+ - 0.0012026096
+ - 0.0023490896
+ - 0.016274944
+ - 0.018526342
+ - 0.003739304
+ - 0.00075697945
+ - 0.07855344
+ - 0.002530566
+ - 0.40086764
+ - 0.0143838255
+ - 0.10517319
+ - 0.003556062
+ - 0.005612395
+ laughterScore: 0
+ - frameNumber: 801
+ frameDelay: 0
+ Visemes:
+ - 0.024306549
+ - 0.2296094
+ - 0.0035731662
+ - 0.005631053
+ - 0.11847182
+ - 0.055169452
+ - 0.015159229
+ - 0.0013255557
+ - 0.06960643
+ - 0.0022121686
+ - 0.3786652
+ - 0.010254347
+ - 0.07940553
+ - 0.0025860285
+ - 0.0040239813
+ laughterScore: 0
+ - frameNumber: 802
+ frameDelay: 0
+ Visemes:
+ - 0.021332135
+ - 0.1610124
+ - 0.0025667434
+ - 0.005300261
+ - 0.34374234
+ - 0.05345349
+ - 0.027231198
+ - 0.0012194675
+ - 0.049132235
+ - 0.0015610728
+ - 0.26587048
+ - 0.007197053
+ - 0.05570232
+ - 0.0018355817
+ - 0.0028431874
+ laughterScore: 0
+ - frameNumber: 803
+ frameDelay: 0
+ Visemes:
+ - 0.020560553
+ - 0.11273076
+ - 0.0018512097
+ - 0.0044372943
+ - 0.52152324
+ - 0.04126091
+ - 0.025780085
+ - 0.0017832424
+ - 0.034447487
+ - 0.0011626063
+ - 0.18638544
+ - 0.005060877
+ - 0.03935039
+ - 0.0012891607
+ - 0.0023766677
+ laughterScore: 0
+ - frameNumber: 804
+ frameDelay: 0
+ Visemes:
+ - 0.01927533
+ - 0.078921095
+ - 0.0013393506
+ - 0.0035770661
+ - 0.6389277
+ - 0.029275194
+ - 0.023574848
+ - 0.009072727
+ - 0.02412036
+ - 0.0008722443
+ - 0.13543859
+ - 0.0035562117
+ - 0.028644033
+ - 0.00090940855
+ - 0.002495775
+ laughterScore: 0
+ - frameNumber: 805
+ frameDelay: 0
+ Visemes:
+ - 0.024072628
+ - 0.055352695
+ - 0.0010156372
+ - 0.0033379858
+ - 0.56654537
+ - 0.02103622
+ - 0.10774864
+ - 0.009925793
+ - 0.016926179
+ - 0.027948208
+ - 0.101625346
+ - 0.0025675546
+ - 0.050727148
+ - 0.00069442985
+ - 0.010476109
+ laughterScore: 0
+ - frameNumber: 806
+ frameDelay: 0
+ Visemes:
+ - 0.028559487
+ - 0.03906144
+ - 0.0012043861
+ - 0.0027592327
+ - 0.41717672
+ - 0.017190885
+ - 0.15501383
+ - 0.0072733057
+ - 0.011953102
+ - 0.14163774
+ - 0.07798396
+ - 0.0065331487
+ - 0.06447555
+ - 0.0012251348
+ - 0.02795203
+ laughterScore: 0
+ - frameNumber: 807
+ frameDelay: 0
+ Visemes:
+ - 0.029820941
+ - 0.027488528
+ - 0.0008997759
+ - 0.002171569
+ - 0.2922876
+ - 0.013116689
+ - 0.10920244
+ - 0.0051019704
+ - 0.008480598
+ - 0.30834168
+ - 0.05965615
+ - 0.021530163
+ - 0.080994055
+ - 0.0015371193
+ - 0.03937074
+ laughterScore: 0
+ - frameNumber: 808
+ frameDelay: 0
+ Visemes:
+ - 0.026267678
+ - 0.019589586
+ - 0.00068287936
+ - 0.0015744598
+ - 0.20558949
+ - 0.01376648
+ - 0.07657495
+ - 0.0035861623
+ - 0.0068158633
+ - 0.33468467
+ - 0.04487866
+ - 0.0988764
+ - 0.12882942
+ - 0.0013454683
+ - 0.036937878
+ laughterScore: 0
+ - frameNumber: 809
+ frameDelay: 0
+ Visemes:
+ - 0.021982577
+ - 0.01412539
+ - 0.00061118463
+ - 0.0011542232
+ - 0.1456625
+ - 0.011091688
+ - 0.053629808
+ - 0.0025384582
+ - 0.007414763
+ - 0.24251914
+ - 0.034176335
+ - 0.11846725
+ - 0.31718773
+ - 0.0011533968
+ - 0.028285608
+ laughterScore: 0
+ - frameNumber: 810
+ frameDelay: 0
+ Visemes:
+ - 0.022840401
+ - 0.010748792
+ - 0.0010523896
+ - 0.0014770897
+ - 0.108740404
+ - 0.013318617
+ - 0.03756378
+ - 0.0018531716
+ - 0.0126482
+ - 0.17946823
+ - 0.031695556
+ - 0.10607906
+ - 0.44939148
+ - 0.0009635861
+ - 0.022159258
+ laughterScore: 0
+ - frameNumber: 811
+ frameDelay: 0
+ Visemes:
+ - 0.023106469
+ - 0.0087899035
+ - 0.001560094
+ - 0.001707446
+ - 0.08279548
+ - 0.015848752
+ - 0.026335374
+ - 0.001501537
+ - 0.016164606
+ - 0.12761454
+ - 0.028541815
+ - 0.15731117
+ - 0.48965698
+ - 0.00077572477
+ - 0.018290091
+ laughterScore: 0
+ - frameNumber: 812
+ frameDelay: 0
+ Visemes:
+ - 0.020828256
+ - 0.00661761
+ - 0.001453264
+ - 0.002043771
+ - 0.060210716
+ - 0.016247593
+ - 0.018452058
+ - 0.001144944
+ - 0.012944521
+ - 0.08979318
+ - 0.02265021
+ - 0.13301621
+ - 0.5993462
+ - 0.00058919465
+ - 0.01466224
+ laughterScore: 0
+ - frameNumber: 813
+ frameDelay: 0
+ Visemes:
+ - 0.019326406
+ - 0.004861992
+ - 0.001151316
+ - 0.0016524853
+ - 0.04281345
+ - 0.012316875
+ - 0.012935912
+ - 0.00091687124
+ - 0.0100292815
+ - 0.06328496
+ - 0.018072886
+ - 0.10142365
+ - 0.6944669
+ - 0.0004715253
+ - 0.016275471
+ laughterScore: 0
+ - frameNumber: 814
+ frameDelay: 0
+ Visemes:
+ - 0.02039263
+ - 0.007736208
+ - 0.0024382244
+ - 0.0014885993
+ - 0.043970235
+ - 0.016134305
+ - 0.009265151
+ - 0.0013256159
+ - 0.15535764
+ - 0.04483176
+ - 0.020032937
+ - 0.08243415
+ - 0.5740795
+ - 0.0003804216
+ - 0.020132588
+ laughterScore: 0
+ - frameNumber: 815
+ frameDelay: 0
+ Visemes:
+ - 0.022981813
+ - 0.006279003
+ - 0.002095459
+ - 0.012611007
+ - 0.08753086
+ - 0.014190141
+ - 0.013119741
+ - 0.0044454294
+ - 0.11735425
+ - 0.03169399
+ - 0.017267793
+ - 0.06170405
+ - 0.58216757
+ - 0.00033223772
+ - 0.026226658
+ laughterScore: 0
+ - frameNumber: 816
+ frameDelay: 0
+ Visemes:
+ - 0.020790199
+ - 0.0058101136
+ - 0.0018536076
+ - 0.06265962
+ - 0.14388889
+ - 0.014387353
+ - 0.016186917
+ - 0.0039691874
+ - 0.08409511
+ - 0.0223475
+ - 0.012868441
+ - 0.044526614
+ - 0.5363741
+ - 0.00026936588
+ - 0.02997296
+ laughterScore: 0
+ - frameNumber: 817
+ frameDelay: 0
+ Visemes:
+ - 0.021995725
+ - 0.0066561047
+ - 0.0024241896
+ - 0.15155672
+ - 0.1859948
+ - 0.017017756
+ - 0.018653976
+ - 0.0033271455
+ - 0.060205583
+ - 0.015747799
+ - 0.009452581
+ - 0.032203905
+ - 0.4514141
+ - 0.00022408637
+ - 0.02312548
+ laughterScore: 0
+ - frameNumber: 818
+ frameDelay: 0
+ Visemes:
+ - 0.030527335
+ - 0.0055468227
+ - 0.0019479133
+ - 0.19226769
+ - 0.18349141
+ - 0.017452229
+ - 0.01522095
+ - 0.002895331
+ - 0.043469254
+ - 0.011081841
+ - 0.007175682
+ - 0.024645293
+ - 0.44587937
+ - 0.00021906401
+ - 0.018179825
+ laughterScore: 0
+ - frameNumber: 819
+ frameDelay: 0
+ Visemes:
+ - 0.047910266
+ - 0.0043246606
+ - 0.0018050837
+ - 0.23846516
+ - 0.17472067
+ - 0.01456622
+ - 0.011762927
+ - 0.0038886042
+ - 0.03243154
+ - 0.0078264065
+ - 0.0057110926
+ - 0.026793744
+ - 0.4159143
+ - 0.00026520918
+ - 0.013614098
+ laughterScore: 0
+ - frameNumber: 820
+ frameDelay: 0
+ Visemes:
+ - 0.12239674
+ - 0.003985803
+ - 0.0017039776
+ - 0.20087843
+ - 0.15469503
+ - 0.013663907
+ - 0.008867232
+ - 0.0044886954
+ - 0.027197853
+ - 0.0055995737
+ - 0.0049967854
+ - 0.023433346
+ - 0.41771016
+ - 0.0004960571
+ - 0.009886411
+ laughterScore: 0
+ - frameNumber: 821
+ frameDelay: 0
+ Visemes:
+ - 0.28195727
+ - 0.004379047
+ - 0.0015756981
+ - 0.16662608
+ - 0.13415727
+ - 0.014057605
+ - 0.007215875
+ - 0.0045602163
+ - 0.022783525
+ - 0.00415482
+ - 0.005332182
+ - 0.017595334
+ - 0.32466736
+ - 0.0020016613
+ - 0.008936068
+ laughterScore: 0
+ - frameNumber: 822
+ frameDelay: 0
+ Visemes:
+ - 0.451084
+ - 0.004698638
+ - 0.0014623718
+ - 0.122859485
+ - 0.11023276
+ - 0.0144655295
+ - 0.0064439
+ - 0.0051807547
+ - 0.018888537
+ - 0.0030886845
+ - 0.0066236253
+ - 0.013447557
+ - 0.2309732
+ - 0.0028701844
+ - 0.007680783
+ laughterScore: 0
+ - frameNumber: 823
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 824
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 825
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 826
+ frameDelay: 0
+ Visemes:
+ - 0.38786715
+ - 0.013348402
+ - 0.005407989
+ - 0.03688577
+ - 0.032823104
+ - 0.015702454
+ - 0.0020118759
+ - 0.0038958935
+ - 0.04754637
+ - 0.045094356
+ - 0.18329437
+ - 0.017639238
+ - 0.059042487
+ - 0.12119933
+ - 0.028241184
+ laughterScore: 0
+ - frameNumber: 827
+ frameDelay: 0
+ Visemes:
+ - 0.28724614
+ - 0.009643264
+ - 0.0038584457
+ - 0.026166048
+ - 0.02308483
+ - 0.012224549
+ - 0.0014290446
+ - 0.0027765986
+ - 0.037260562
+ - 0.16258918
+ - 0.15794371
+ - 0.054350737
+ - 0.042429596
+ - 0.15583476
+ - 0.02316253
+ laughterScore: 0
+ - frameNumber: 828
+ frameDelay: 0
+ Visemes:
+ - 0.20739068
+ - 0.006851751
+ - 0.002772355
+ - 0.018397225
+ - 0.01793359
+ - 0.009049515
+ - 0.0010961755
+ - 0.0020610131
+ - 0.027745329
+ - 0.37673852
+ - 0.12728208
+ - 0.04561135
+ - 0.030798415
+ - 0.1096918
+ - 0.01658021
+ laughterScore: 0
+ - frameNumber: 829
+ frameDelay: 0
+ Visemes:
+ - 0.14917926
+ - 0.0048449407
+ - 0.0019952902
+ - 0.013325832
+ - 0.016988717
+ - 0.0070657795
+ - 0.0012728702
+ - 0.0042651207
+ - 0.022054221
+ - 0.53486633
+ - 0.090706006
+ - 0.03902102
+ - 0.024965795
+ - 0.07756803
+ - 0.011880782
+ laughterScore: 0
+ - frameNumber: 830
+ frameDelay: 0
+ Visemes:
+ - 0.10678328
+ - 0.0034192745
+ - 0.0014877098
+ - 0.009474864
+ - 0.015473761
+ - 0.0056322557
+ - 0.0017349315
+ - 0.27634156
+ - 0.015849523
+ - 0.3918418
+ - 0.06410382
+ - 0.027352946
+ - 0.01780999
+ - 0.054369196
+ - 0.0083251195
+ laughterScore: 0
+ - frameNumber: 831
+ frameDelay: 0
+ Visemes:
+ - 0.07590292
+ - 0.002402281
+ - 0.001079596
+ - 0.006692015
+ - 0.01184207
+ - 0.0040227757
+ - 0.0012958925
+ - 0.49059045
+ - 0.011122053
+ - 0.27456713
+ - 0.04491015
+ - 0.019159378
+ - 0.012513138
+ - 0.038071897
+ - 0.0058283056
+ laughterScore: 0
+ - frameNumber: 832
+ frameDelay: 0
+ Visemes:
+ - 0.05422487
+ - 0.0016880701
+ - 0.0007760133
+ - 0.0047055176
+ - 0.009261287
+ - 0.002844944
+ - 0.0009514065
+ - 0.64104784
+ - 0.007793896
+ - 0.1922776
+ - 0.03146828
+ - 0.013419905
+ - 0.008805613
+ - 0.026653783
+ - 0.004081005
+ laughterScore: 0
+ - frameNumber: 833
+ frameDelay: 0
+ Visemes:
+ - 0.039245214
+ - 0.0011872487
+ - 0.0005582231
+ - 0.003366834
+ - 0.02042939
+ - 0.0020166629
+ - 0.00072369794
+ - 0.7331823
+ - 0.0054691094
+ - 0.13461931
+ - 0.022082184
+ - 0.009398542
+ - 0.0061974325
+ - 0.018662764
+ - 0.0028610772
+ laughterScore: 0
+ - frameNumber: 834
+ frameDelay: 0
+ Visemes:
+ - 0.030827267
+ - 0.0008913302
+ - 0.00043553647
+ - 0.0028168082
+ - 0.049927205
+ - 0.0015089774
+ - 0.00057550246
+ - 0.7722902
+ - 0.004142224
+ - 0.09424923
+ - 0.015826115
+ - 0.0066155433
+ - 0.0047150524
+ - 0.013106016
+ - 0.0020729592
+ laughterScore: 0
+ - frameNumber: 835
+ frameDelay: 0
+ Visemes:
+ - 0.03093008
+ - 0.0007222989
+ - 0.00032297208
+ - 0.004465551
+ - 0.06159509
+ - 0.0015893779
+ - 0.00043393712
+ - 0.6166386
+ - 0.034829665
+ - 0.0660143
+ - 0.0557565
+ - 0.087887086
+ - 0.010622211
+ - 0.025691101
+ - 0.0025012256
+ laughterScore: 0
+ - frameNumber: 836
+ frameDelay: 0
+ Visemes:
+ - 0.025162293
+ - 0.00066474185
+ - 0.00028624973
+ - 0.0032857887
+ - 0.045104623
+ - 0.001349275
+ - 0.00034423117
+ - 0.4320816
+ - 0.032133
+ - 0.046340648
+ - 0.17942204
+ - 0.08854378
+ - 0.06403088
+ - 0.076047055
+ - 0.0052037723
+ laughterScore: 0
+ - frameNumber: 837
+ frameDelay: 0
+ Visemes:
+ - 0.022521075
+ - 0.00056113896
+ - 0.0013736661
+ - 0.002428108
+ - 0.03242102
+ - 0.0025794604
+ - 0.0002575687
+ - 0.3026349
+ - 0.11121338
+ - 0.03260778
+ - 0.23891011
+ - 0.06414401
+ - 0.057611216
+ - 0.12385519
+ - 0.0068813525
+ laughterScore: 0
+ - frameNumber: 838
+ frameDelay: 0
+ Visemes:
+ - 0.017934307
+ - 0.00048487366
+ - 0.0012029584
+ - 0.0022045947
+ - 0.02296772
+ - 0.0026895753
+ - 0.00018253173
+ - 0.21190326
+ - 0.3675287
+ - 0.02288011
+ - 0.16804509
+ - 0.04512238
+ - 0.04062084
+ - 0.088888
+ - 0.0073449966
+ laughterScore: 0
+ - frameNumber: 839
+ frameDelay: 0
+ Visemes:
+ - 0.014530901
+ - 0.0003702805
+ - 0.00088271755
+ - 0.0021409814
+ - 0.016162181
+ - 0.0021942456
+ - 0.00012833139
+ - 0.14834227
+ - 0.5514684
+ - 0.016062025
+ - 0.11823165
+ - 0.032826874
+ - 0.02881216
+ - 0.06235536
+ - 0.005491666
+ laughterScore: 0
+ - frameNumber: 840
+ frameDelay: 0
+ Visemes:
+ - 0.01569609
+ - 0.00029108574
+ - 0.00066291593
+ - 0.008361768
+ - 0.012031747
+ - 0.002268914
+ - 0.00009802433
+ - 0.1038683
+ - 0.55065346
+ - 0.011542258
+ - 0.124509946
+ - 0.09800953
+ - 0.023735626
+ - 0.043967936
+ - 0.004302355
+ laughterScore: 0
+ - frameNumber: 841
+ frameDelay: 0
+ Visemes:
+ - 0.01644145
+ - 0.0002103594
+ - 0.00047041418
+ - 0.0063140523
+ - 0.008641009
+ - 0.0018972878
+ - 0.00007287596
+ - 0.07271269
+ - 0.38878882
+ - 0.008302646
+ - 0.25540096
+ - 0.18914983
+ - 0.017276462
+ - 0.031185744
+ - 0.003135384
+ laughterScore: 0
+ - frameNumber: 842
+ frameDelay: 0
+ Visemes:
+ - 0.015089191
+ - 0.00018932373
+ - 0.00038761712
+ - 0.0044467757
+ - 0.0072217644
+ - 0.0014683094
+ - 0.00005514459
+ - 0.050902016
+ - 0.2726733
+ - 0.0068524955
+ - 0.22553945
+ - 0.37766218
+ - 0.012515162
+ - 0.022275934
+ - 0.0027212575
+ laughterScore: 0
+ - frameNumber: 843
+ frameDelay: 0
+ Visemes:
+ - 0.012084018
+ - 0.0004963598
+ - 0.0030127256
+ - 0.003128201
+ - 0.0066096103
+ - 0.12425296
+ - 0.000053478663
+ - 0.035648014
+ - 0.19089569
+ - 0.0048255627
+ - 0.15953113
+ - 0.4231273
+ - 0.009409521
+ - 0.015646478
+ - 0.0112788975
+ laughterScore: 0
+ - frameNumber: 844
+ frameDelay: 0
+ Visemes:
+ - 0.012142598
+ - 0.0006824183
+ - 0.002617252
+ - 0.0022189303
+ - 0.013060059
+ - 0.36881924
+ - 0.00024246502
+ - 0.025098516
+ - 0.13363983
+ - 0.003387583
+ - 0.11194839
+ - 0.29866242
+ - 0.006685958
+ - 0.01099201
+ - 0.009802317
+ laughterScore: 0
+ - frameNumber: 845
+ frameDelay: 0
+ Visemes:
+ - 0.01834203
+ - 0.00085838593
+ - 0.0019608291
+ - 0.0016841954
+ - 0.023470666
+ - 0.53272676
+ - 0.00021422106
+ - 0.017819671
+ - 0.09355925
+ - 0.002377942
+ - 0.07847307
+ - 0.20909724
+ - 0.0047116964
+ - 0.0077167866
+ - 0.006987245
+ laughterScore: 0
+ - frameNumber: 846
+ frameDelay: 0
+ Visemes:
+ - 0.022715326
+ - 0.0024640788
+ - 0.0018366696
+ - 0.008381165
+ - 0.10346852
+ - 0.5545605
+ - 0.0076848282
+ - 0.016276976
+ - 0.06554325
+ - 0.0017009603
+ - 0.055199195
+ - 0.14637963
+ - 0.0034084409
+ - 0.0054173805
+ - 0.0049631023
+ laughterScore: 0
+ - frameNumber: 847
+ frameDelay: 0
+ Visemes:
+ - 0.027607955
+ - 0.0030686047
+ - 0.004170338
+ - 0.010714954
+ - 0.2264517
+ - 0.470356
+ - 0.02198368
+ - 0.03542089
+ - 0.045994125
+ - 0.0012692041
+ - 0.03930443
+ - 0.10249425
+ - 0.0032656738
+ - 0.003813805
+ - 0.004084422
+ laughterScore: 0
+ - frameNumber: 848
+ frameDelay: 0
+ Visemes:
+ - 0.03614376
+ - 0.007002393
+ - 0.18543406
+ - 0.008313874
+ - 0.21210986
+ - 0.3460734
+ - 0.017644301
+ - 0.03804077
+ - 0.03250564
+ - 0.002886701
+ - 0.02952904
+ - 0.07178174
+ - 0.0057612434
+ - 0.002731345
+ - 0.004041872
+ laughterScore: 0
+ - frameNumber: 849
+ frameDelay: 0
+ Visemes:
+ - 0.030151771
+ - 0.0059198854
+ - 0.41253394
+ - 0.006201251
+ - 0.15299556
+ - 0.24383575
+ - 0.012441599
+ - 0.02898068
+ - 0.022792907
+ - 0.0030700779
+ - 0.021489609
+ - 0.050257336
+ - 0.004248746
+ - 0.0019310092
+ - 0.003149855
+ laughterScore: 0
+ - frameNumber: 850
+ frameDelay: 0
+ Visemes:
+ - 0.026686355
+ - 0.0045742383
+ - 0.3768611
+ - 0.0071763867
+ - 0.11059718
+ - 0.17384483
+ - 0.0090099955
+ - 0.028559403
+ - 0.017049257
+ - 0.18125999
+ - 0.018111644
+ - 0.035402432
+ - 0.0036783693
+ - 0.001917257
+ - 0.00527151
+ laughterScore: 0
+ - frameNumber: 851
+ frameDelay: 0
+ Visemes:
+ - 0.021465488
+ - 0.0034283558
+ - 0.27060893
+ - 0.0067436225
+ - 0.07780079
+ - 0.122116804
+ - 0.0063124234
+ - 0.020015594
+ - 0.012258545
+ - 0.40153125
+ - 0.01774503
+ - 0.029249197
+ - 0.00376269
+ - 0.0019663307
+ - 0.0049949065
+ laughterScore: 0
+ - frameNumber: 852
+ frameDelay: 0
+ Visemes:
+ - 0.021216733
+ - 0.0037276645
+ - 0.18982072
+ - 0.0048162164
+ - 0.055296846
+ - 0.085537665
+ - 0.0044617304
+ - 0.014040676
+ - 0.0099340575
+ - 0.3320449
+ - 0.1147163
+ - 0.12048246
+ - 0.035529234
+ - 0.004637503
+ - 0.0037372871
+ laughterScore: 0
+ - frameNumber: 853
+ frameDelay: 0
+ Visemes:
+ - 0.020738449
+ - 0.09444266
+ - 0.13891852
+ - 0.0038523227
+ - 0.042057376
+ - 0.06263634
+ - 0.0031360127
+ - 0.00999582
+ - 0.034844883
+ - 0.25345734
+ - 0.20089717
+ - 0.0882411
+ - 0.04057287
+ - 0.0035207407
+ - 0.0026884014
+ laughterScore: 0
+ - frameNumber: 854
+ frameDelay: 0
+ Visemes:
+ - 0.019261539
+ - 0.33176503
+ - 0.09863774
+ - 0.0030827704
+ - 0.03640294
+ - 0.04530809
+ - 0.0022171899
+ - 0.007166213
+ - 0.037422135
+ - 0.1776488
+ - 0.14557287
+ - 0.061814703
+ - 0.029297588
+ - 0.0024776647
+ - 0.0019247637
+ laughterScore: 0
+ - frameNumber: 855
+ frameDelay: 0
+ Visemes:
+ - 0.017712686
+ - 0.5215081
+ - 0.069219865
+ - 0.0023505762
+ - 0.02660472
+ - 0.031846598
+ - 0.0015619115
+ - 0.0050447425
+ - 0.028513167
+ - 0.12437666
+ - 0.10344876
+ - 0.043317985
+ - 0.021379022
+ - 0.0017355622
+ - 0.0013796363
+ laughterScore: 0
+ - frameNumber: 856
+ frameDelay: 0
+ Visemes:
+ - 0.019080196
+ - 0.6461266
+ - 0.048534505
+ - 0.0020997399
+ - 0.01951018
+ - 0.022832882
+ - 0.0011119781
+ - 0.0035848944
+ - 0.022799056
+ - 0.08721525
+ - 0.07494125
+ - 0.031422984
+ - 0.018317068
+ - 0.0012332135
+ - 0.0011901121
+ laughterScore: 0
+ - frameNumber: 857
+ frameDelay: 0
+ Visemes:
+ - 0.017225135
+ - 0.46343765
+ - 0.034001905
+ - 0.001611153
+ - 0.0138675645
+ - 0.016592901
+ - 0.0007981518
+ - 0.0025409737
+ - 0.016245816
+ - 0.06125347
+ - 0.15450938
+ - 0.05930032
+ - 0.15653688
+ - 0.000977319
+ - 0.001101373
+ laughterScore: 0
+ - frameNumber: 858
+ frameDelay: 0
+ Visemes:
+ - 0.015442386
+ - 0.32468638
+ - 0.023868987
+ - 0.0012355148
+ - 0.00986592
+ - 0.011679188
+ - 0.0005699725
+ - 0.0018584132
+ - 0.013920775
+ - 0.044641737
+ - 0.20893826
+ - 0.0587579
+ - 0.2823582
+ - 0.0010923059
+ - 0.0010840638
+ laughterScore: 0
+ - frameNumber: 859
+ frameDelay: 0
+ Visemes:
+ - 0.015843948
+ - 0.22765616
+ - 0.01690438
+ - 0.0017804675
+ - 0.019739343
+ - 0.009814417
+ - 0.0027547374
+ - 0.0014884837
+ - 0.08045065
+ - 0.032275967
+ - 0.18885992
+ - 0.058026418
+ - 0.3425178
+ - 0.0009302434
+ - 0.0009570633
+ laughterScore: 0
+ - frameNumber: 860
+ frameDelay: 0
+ Visemes:
+ - 0.020651042
+ - 0.15977916
+ - 0.0120234415
+ - 0.017570598
+ - 0.15017131
+ - 0.015185981
+ - 0.015791416
+ - 0.0017302706
+ - 0.1512169
+ - 0.022728065
+ - 0.14726189
+ - 0.04164736
+ - 0.2428749
+ - 0.00066205603
+ - 0.00070557493
+ laughterScore: 0
+ - frameNumber: 861
+ frameDelay: 0
+ Visemes:
+ - 0.045166433
+ - 0.11241633
+ - 0.008724644
+ - 0.018327016
+ - 0.14979406
+ - 0.011382869
+ - 0.011116618
+ - 0.0014642882
+ - 0.1717798
+ - 0.016130136
+ - 0.1628478
+ - 0.055358022
+ - 0.23445044
+ - 0.0005068288
+ - 0.0005346965
+ laughterScore: 0
+ - frameNumber: 862
+ frameDelay: 0
+ Visemes:
+ - 0.043113675
+ - 0.07889706
+ - 0.006284229
+ - 0.015609488
+ - 0.11104142
+ - 0.008380056
+ - 0.0078293355
+ - 0.0010483384
+ - 0.1304137
+ - 0.011434021
+ - 0.14844063
+ - 0.2064682
+ - 0.23023805
+ - 0.00040815634
+ - 0.00039362328
+ laughterScore: 0
+ - frameNumber: 863
+ frameDelay: 0
+ Visemes:
+ - 0.04267948
+ - 0.055334568
+ - 0.0045218347
+ - 0.011384383
+ - 0.08240274
+ - 0.006757384
+ - 0.0055135502
+ - 0.000753368
+ - 0.096924245
+ - 0.008242854
+ - 0.116608456
+ - 0.34220272
+ - 0.22605683
+ - 0.00032659966
+ - 0.00029097302
+ laughterScore: 0
+ - frameNumber: 864
+ frameDelay: 0
+ Visemes:
+ - 0.03893874
+ - 0.038798563
+ - 0.0032038004
+ - 0.00808157
+ - 0.05864836
+ - 0.0050463006
+ - 0.0038702434
+ - 0.000534302
+ - 0.073753625
+ - 0.0058846013
+ - 0.089509405
+ - 0.41617274
+ - 0.25708702
+ - 0.00025378968
+ - 0.00021692645
+ laughterScore: 0
+ - frameNumber: 865
+ frameDelay: 0
+ Visemes:
+ - 0.03778394
+ - 0.027210437
+ - 0.002278861
+ - 0.0057125827
+ - 0.041993592
+ - 0.0038644106
+ - 0.0027180966
+ - 0.0003827989
+ - 0.06497186
+ - 0.00419906
+ - 0.066706985
+ - 0.52589023
+ - 0.21591678
+ - 0.00020868256
+ - 0.00016169673
+ laughterScore: 0
+ - frameNumber: 866
+ frameDelay: 0
+ Visemes:
+ - 0.037060253
+ - 0.019163294
+ - 0.0016129139
+ - 0.004039522
+ - 0.033137985
+ - 0.0030796234
+ - 0.0019059293
+ - 0.00028452688
+ - 0.0838649
+ - 0.003094609
+ - 0.051936902
+ - 0.5427181
+ - 0.21779755
+ - 0.00016253733
+ - 0.0001413532
+ laughterScore: 0
+ - frameNumber: 867
+ frameDelay: 0
+ Visemes:
+ - 0.034452684
+ - 0.05916405
+ - 0.0018860423
+ - 0.0029448704
+ - 0.031696107
+ - 0.0035296897
+ - 0.0013361021
+ - 0.00023220648
+ - 0.28902492
+ - 0.002248321
+ - 0.037977535
+ - 0.3808385
+ - 0.15444595
+ - 0.000114285525
+ - 0.00010870672
+ laughterScore: 0
+ - frameNumber: 868
+ frameDelay: 0
+ Visemes:
+ - 0.032196052
+ - 0.068273604
+ - 0.0015532046
+ - 0.0032767456
+ - 0.02683853
+ - 0.0038674974
+ - 0.0009430339
+ - 0.00021913656
+ - 0.45857653
+ - 0.0016217824
+ - 0.026862169
+ - 0.2669101
+ - 0.10866494
+ - 0.000082897226
+ - 0.000113716495
+ laughterScore: 0
+ - frameNumber: 869
+ frameDelay: 0
+ Visemes:
+ - 0.03007985
+ - 0.15201285
+ - 0.0017458027
+ - 0.0063824705
+ - 0.02416523
+ - 0.008229252
+ - 0.00083039794
+ - 0.00020264529
+ - 0.4696377
+ - 0.0013411238
+ - 0.027215447
+ - 0.18866009
+ - 0.088599354
+ - 0.000108408254
+ - 0.0007893415
+ laughterScore: 0
+ - frameNumber: 870
+ frameDelay: 0
+ Visemes:
+ - 0.035942905
+ - 0.11094329
+ - 0.0013571032
+ - 0.02267246
+ - 0.020006308
+ - 0.0091274325
+ - 0.0008550356
+ - 0.00017437432
+ - 0.3625587
+ - 0.0011050387
+ - 0.055671483
+ - 0.17306691
+ - 0.20485105
+ - 0.00045084913
+ - 0.0012170505
+ laughterScore: 0
+ - frameNumber: 871
+ frameDelay: 0
+ Visemes:
+ - 0.03224815
+ - 0.0782809
+ - 0.0010954908
+ - 0.022534115
+ - 0.016378682
+ - 0.007096803
+ - 0.0006902991
+ - 0.00017877699
+ - 0.26633853
+ - 0.0010515098
+ - 0.10488849
+ - 0.15638085
+ - 0.31128794
+ - 0.00050923205
+ - 0.0010402487
+ laughterScore: 0
+ - frameNumber: 872
+ frameDelay: 0
+ Visemes:
+ - 0.030795805
+ - 0.055304814
+ - 0.00088599033
+ - 0.017582564
+ - 0.013882922
+ - 0.005377711
+ - 0.00059934886
+ - 0.00027428078
+ - 0.2009581
+ - 0.0009023216
+ - 0.1307459
+ - 0.1460249
+ - 0.3951828
+ - 0.0005724456
+ - 0.000910109
+ laughterScore: 0
+ - frameNumber: 873
+ frameDelay: 0
+ Visemes:
+ - 0.026718227
+ - 0.03897884
+ - 0.00066668197
+ - 0.012623968
+ - 0.012320735
+ - 0.0040092072
+ - 0.0005738896
+ - 0.00041084984
+ - 0.1470602
+ - 0.00082082115
+ - 0.14273645
+ - 0.11597335
+ - 0.49573803
+ - 0.0006196486
+ - 0.00074912456
+ laughterScore: 0
+ - frameNumber: 874
+ frameDelay: 0
+ Visemes:
+ - 0.02476602
+ - 0.028153045
+ - 0.00084668014
+ - 0.009501381
+ - 0.11605242
+ - 0.0036749032
+ - 0.0071814316
+ - 0.0007201466
+ - 0.15033887
+ - 0.0011775682
+ - 0.14037955
+ - 0.08930254
+ - 0.4265843
+ - 0.00052868313
+ - 0.0007924655
+ laughterScore: 0
+ - frameNumber: 875
+ frameDelay: 0
+ Visemes:
+ - 0.023122638
+ - 0.019982914
+ - 0.00084939646
+ - 0.0075279884
+ - 0.23576719
+ - 0.0031364658
+ - 0.1065461
+ - 0.003631767
+ - 0.11308123
+ - 0.0011219628
+ - 0.114174634
+ - 0.06279355
+ - 0.30728173
+ - 0.0003786427
+ - 0.0006038442
+ laughterScore: 0
+ - frameNumber: 876
+ frameDelay: 0
+ Visemes:
+ - 0.022854578
+ - 0.014070711
+ - 0.0008507018
+ - 0.0054258797
+ - 0.2628675
+ - 0.002480758
+ - 0.26240227
+ - 0.004926403
+ - 0.08088146
+ - 0.0009069671
+ - 0.08151688
+ - 0.04398928
+ - 0.21608779
+ - 0.0002710777
+ - 0.000467841
+ laughterScore: 0
+ - frameNumber: 877
+ frameDelay: 0
+ Visemes:
+ - 0.026417663
+ - 0.009934854
+ - 0.001843735
+ - 0.0042675524
+ - 0.26050586
+ - 0.0020672705
+ - 0.354515
+ - 0.035554845
+ - 0.057259366
+ - 0.00090191804
+ - 0.057720352
+ - 0.030826196
+ - 0.15752123
+ - 0.00021071326
+ - 0.0004535382
+ laughterScore: 0
+ - frameNumber: 878
+ frameDelay: 0
+ Visemes:
+ - 0.036489964
+ - 0.0070838453
+ - 0.001595396
+ - 0.0031715254
+ - 0.19985849
+ - 0.0018223182
+ - 0.34617302
+ - 0.1840966
+ - 0.04083104
+ - 0.00097488554
+ - 0.04323779
+ - 0.02166047
+ - 0.111997284
+ - 0.00019577458
+ - 0.00081163575
+ laughterScore: 0
+ - frameNumber: 879
+ frameDelay: 0
+ Visemes:
+ - 0.05343035
+ - 0.005797614
+ - 0.0028353825
+ - 0.0030789657
+ - 0.1800571
+ - 0.0052733407
+ - 0.2863571
+ - 0.2928215
+ - 0.03076506
+ - 0.0014408884
+ - 0.037562694
+ - 0.015393134
+ - 0.081825465
+ - 0.0004048387
+ - 0.0029566023
+ laughterScore: 0
+ - frameNumber: 880
+ frameDelay: 0
+ Visemes:
+ - 0.07293094
+ - 0.006476233
+ - 0.0042075515
+ - 0.009048704
+ - 0.21631077
+ - 0.01125028
+ - 0.25741047
+ - 0.283325
+ - 0.022672767
+ - 0.0029637828
+ - 0.03274956
+ - 0.010944083
+ - 0.06174117
+ - 0.00042876304
+ - 0.007539952
+ laughterScore: 0
+ - frameNumber: 881
+ frameDelay: 0
+ Visemes:
+ - 0.05832226
+ - 0.008396084
+ - 0.004451676
+ - 0.07697426
+ - 0.33879447
+ - 0.008644053
+ - 0.20401712
+ - 0.20100349
+ - 0.016942952
+ - 0.002365773
+ - 0.023153361
+ - 0.007686476
+ - 0.043462675
+ - 0.0003304155
+ - 0.0054549556
+ laughterScore: 0
+ - frameNumber: 882
+ frameDelay: 0
+ Visemes:
+ - 0.046117634
+ - 0.006212176
+ - 0.0032810308
+ - 0.20838544
+ - 0.37324065
+ - 0.0061972295
+ - 0.14283344
+ - 0.14095783
+ - 0.012388939
+ - 0.0017973485
+ - 0.0171045
+ - 0.006595454
+ - 0.030801196
+ - 0.00024422095
+ - 0.0038429382
+ laughterScore: 0
+ - frameNumber: 883
+ frameDelay: 0
+ Visemes:
+ - 0.041624695
+ - 0.004928731
+ - 0.0024273312
+ - 0.23769964
+ - 0.30071807
+ - 0.007577984
+ - 0.10020865
+ - 0.09884824
+ - 0.0101000555
+ - 0.001811811
+ - 0.03283779
+ - 0.1343843
+ - 0.02360335
+ - 0.00048877136
+ - 0.0027405773
+ laughterScore: 0
+ - frameNumber: 884
+ frameDelay: 0
+ Visemes:
+ - 0.03692659
+ - 0.003933698
+ - 0.001728134
+ - 0.16776682
+ - 0.21718042
+ - 0.006528875
+ - 0.070171796
+ - 0.06923451
+ - 0.007230918
+ - 0.0016221612
+ - 0.05941699
+ - 0.33531284
+ - 0.020304913
+ - 0.00067735673
+ - 0.0019639463
+ laughterScore: 0
+ - frameNumber: 885
+ frameDelay: 0
+ Visemes:
+ - 0.030262973
+ - 0.004479858
+ - 0.0012962212
+ - 0.11757201
+ - 0.16780818
+ - 0.004713371
+ - 0.049130213
+ - 0.048509743
+ - 0.005173561
+ - 0.0030418173
+ - 0.08077738
+ - 0.46812773
+ - 0.017036567
+ - 0.00067899266
+ - 0.001391401
+ laughterScore: 0
+ - frameNumber: 886
+ frameDelay: 0
+ Visemes:
+ - 0.02499795
+ - 0.03549484
+ - 0.002006755
+ - 0.08232286
+ - 0.18808651
+ - 0.0037705374
+ - 0.034403767
+ - 0.034100384
+ - 0.003728664
+ - 0.0058654905
+ - 0.1144039
+ - 0.4556103
+ - 0.013616618
+ - 0.0006021127
+ - 0.0009892813
+ laughterScore: 0
+ - frameNumber: 887
+ frameDelay: 0
+ Visemes:
+ - 0.019234443
+ - 0.20544402
+ - 0.0036424235
+ - 0.057640065
+ - 0.24232271
+ - 0.0038516177
+ - 0.024093788
+ - 0.023913596
+ - 0.00284635
+ - 0.0041942312
+ - 0.08252337
+ - 0.31922713
+ - 0.009944764
+ - 0.000425696
+ - 0.0006957663
+ laughterScore: 0
+ - frameNumber: 888
+ frameDelay: 0
+ Visemes:
+ - 0.01519151
+ - 0.27777147
+ - 0.003508967
+ - 0.04044345
+ - 0.33116984
+ - 0.0038582617
+ - 0.017031705
+ - 0.016775893
+ - 0.0020653487
+ - 0.0029408343
+ - 0.05793772
+ - 0.2235099
+ - 0.0070028985
+ - 0.00030244907
+ - 0.00048972736
+ laughterScore: 0
+ - frameNumber: 889
+ frameDelay: 0
+ Visemes:
+ - 0.01651787
+ - 0.30210125
+ - 0.0040948815
+ - 0.030102715
+ - 0.4117166
+ - 0.0040600663
+ - 0.012142929
+ - 0.011873123
+ - 0.001514038
+ - 0.0020660653
+ - 0.041591607
+ - 0.15657634
+ - 0.005062229
+ - 0.00021884238
+ - 0.00036142897
+ laughterScore: 0
+ - frameNumber: 890
+ frameDelay: 0
+ Visemes:
+ - 0.024566108
+ - 0.41458404
+ - 0.007053381
+ - 0.029561413
+ - 0.35358265
+ - 0.0065704514
+ - 0.00877103
+ - 0.0090109715
+ - 0.0011289918
+ - 0.0014608657
+ - 0.029588439
+ - 0.10975206
+ - 0.0038539553
+ - 0.00019542947
+ - 0.00032024182
+ laughterScore: 0
+ - frameNumber: 891
+ frameDelay: 0
+ Visemes:
+ - 0.056862477
+ - 0.43525195
+ - 0.011748405
+ - 0.03652345
+ - 0.33078036
+ - 0.0101133585
+ - 0.0064180647
+ - 0.0074928375
+ - 0.001089362
+ - 0.0011081761
+ - 0.021566447
+ - 0.07717139
+ - 0.0031542864
+ - 0.00021991893
+ - 0.00049953087
+ laughterScore: 0
+ - frameNumber: 892
+ frameDelay: 0
+ Visemes:
+ - 0.12285966
+ - 0.33546856
+ - 0.011690031
+ - 0.04221882
+ - 0.3844884
+ - 0.012239614
+ - 0.004863733
+ - 0.007634258
+ - 0.0015254947
+ - 0.0010101835
+ - 0.016436193
+ - 0.05475436
+ - 0.0037082746
+ - 0.00030261575
+ - 0.00079980167
+ laughterScore: 0
+ - frameNumber: 893
+ frameDelay: 0
+ Visemes:
+ - 0.20303364
+ - 0.254162
+ - 0.010444232
+ - 0.04137968
+ - 0.40494284
+ - 0.013113735
+ - 0.0036597175
+ - 0.006618887
+ - 0.0017453579
+ - 0.0010025953
+ - 0.013742972
+ - 0.039888375
+ - 0.004564125
+ - 0.00041175837
+ - 0.0012900911
+ laughterScore: 0
+ - frameNumber: 894
+ frameDelay: 0
+ Visemes:
+ - 0.31307855
+ - 0.18432543
+ - 0.00796156
+ - 0.035132412
+ - 0.37372562
+ - 0.023623839
+ - 0.002797466
+ - 0.0055796285
+ - 0.0021461449
+ - 0.0010629646
+ - 0.012327619
+ - 0.029922817
+ - 0.0060673
+ - 0.0005657908
+ - 0.0016829033
+ laughterScore: 0
+ - frameNumber: 895
+ frameDelay: 0
+ Visemes:
+ - 0.43376786
+ - 0.13368593
+ - 0.006153428
+ - 0.02833688
+ - 0.30901954
+ - 0.036035478
+ - 0.0022794541
+ - 0.004960328
+ - 0.0021444326
+ - 0.0010134801
+ - 0.010507442
+ - 0.022582281
+ - 0.0071062786
+ - 0.0006221758
+ - 0.001785091
+ laughterScore: 0
+ - frameNumber: 896
+ frameDelay: 0
+ Visemes:
+ - 0.3458898
+ - 0.23550662
+ - 0.034835726
+ - 0.0755448
+ - 0.22328877
+ - 0.026755596
+ - 0.0016401489
+ - 0.0046455786
+ - 0.0023358
+ - 0.00089386443
+ - 0.012029806
+ - 0.026194504
+ - 0.0067417175
+ - 0.0014288805
+ - 0.0022684042
+ laughterScore: 0
+ - frameNumber: 897
+ frameDelay: 0
+ Visemes:
+ - 0.2647449
+ - 0.19875242
+ - 0.0248949
+ - 0.061367627
+ - 0.15750326
+ - 0.019115256
+ - 0.0012275631
+ - 0.0033242062
+ - 0.0020928485
+ - 0.0010210722
+ - 0.04034751
+ - 0.21050107
+ - 0.012270426
+ - 0.001154206
+ - 0.0016827662
+ laughterScore: 0
+ - frameNumber: 898
+ frameDelay: 0
+ Visemes:
+ - 0.2053486
+ - 0.15393738
+ - 0.01750835
+ - 0.043311346
+ - 0.110790536
+ - 0.013699356
+ - 0.0008999754
+ - 0.002377631
+ - 0.0015635064
+ - 0.001703313
+ - 0.035138894
+ - 0.38176388
+ - 0.02942498
+ - 0.0011173974
+ - 0.0014148696
+ laughterScore: 0
+ - frameNumber: 899
+ frameDelay: 0
+ Visemes:
+ - 0.16742633
+ - 0.110637404
+ - 0.012295952
+ - 0.030460306
+ - 0.07973329
+ - 0.010092625
+ - 0.00065141014
+ - 0.0017674974
+ - 0.0013012408
+ - 0.0048035486
+ - 0.03450622
+ - 0.513424
+ - 0.0289003
+ - 0.0024702223
+ - 0.0015296633
+ laughterScore: 0
+ - frameNumber: 900
+ frameDelay: 0
+ Visemes:
+ - 0.13692094
+ - 0.07960561
+ - 0.008684426
+ - 0.02137236
+ - 0.057178326
+ - 0.00849154
+ - 0.0004735934
+ - 0.0013630211
+ - 0.0012542127
+ - 0.0052058604
+ - 0.044747956
+ - 0.6044843
+ - 0.025160642
+ - 0.0035769544
+ - 0.0014802861
+ laughterScore: 0
+ - frameNumber: 901
+ frameDelay: 0
+ Visemes:
+ - 0.10152397
+ - 0.05577361
+ - 0.006221634
+ - 0.015286224
+ - 0.04775237
+ - 0.0072110067
+ - 0.00037141526
+ - 0.0027315535
+ - 0.0020233523
+ - 0.003968101
+ - 0.045763135
+ - 0.6854337
+ - 0.021382192
+ - 0.0031844066
+ - 0.001373362
+ laughterScore: 0
+ - frameNumber: 902
+ frameDelay: 0
+ Visemes:
+ - 0.07490991
+ - 0.039050035
+ - 0.004794213
+ - 0.012056681
+ - 0.060509607
+ - 0.005631399
+ - 0.00038509013
+ - 0.070414014
+ - 0.0016122889
+ - 0.0028630428
+ - 0.033373263
+ - 0.6749033
+ - 0.016150836
+ - 0.0023408784
+ - 0.0010054756
+ laughterScore: 0
+ - frameNumber: 903
+ frameDelay: 0
+ Visemes:
+ - 0.055549644
+ - 0.027343947
+ - 0.003470176
+ - 0.009698444
+ - 0.0894074
+ - 0.0041976813
+ - 0.00029974757
+ - 0.29679185
+ - 0.0012317917
+ - 0.0020069946
+ - 0.023463072
+ - 0.47271433
+ - 0.01147202
+ - 0.0016422146
+ - 0.00071067136
+ laughterScore: 0
+ - frameNumber: 904
+ frameDelay: 0
+ Visemes:
+ - 0.04290723
+ - 0.019155843
+ - 0.0026102616
+ - 0.0075639477
+ - 0.076999694
+ - 0.0032145723
+ - 0.0003505837
+ - 0.48776668
+ - 0.00088336074
+ - 0.0014059367
+ - 0.016469168
+ - 0.33093032
+ - 0.008091748
+ - 0.0011515181
+ - 0.0004991818
+ laughterScore: 0
+ - frameNumber: 905
+ frameDelay: 0
+ Visemes:
+ - 0.032318648
+ - 0.013425041
+ - 0.001911089
+ - 0.005432715
+ - 0.068055086
+ - 0.0031543938
+ - 0.00029448443
+ - 0.6235188
+ - 0.0006707166
+ - 0.0009853939
+ - 0.011584871
+ - 0.2316574
+ - 0.005825352
+ - 0.00080815214
+ - 0.0003578669
+ laughterScore: 0
+ - frameNumber: 906
+ frameDelay: 0
+ Visemes:
+ - 0.026145682
+ - 0.009474259
+ - 0.0014949732
+ - 0.0047170385
+ - 0.07976425
+ - 0.004410307
+ - 0.0002855641
+ - 0.69464254
+ - 0.0007484519
+ - 0.0006997663
+ - 0.008261147
+ - 0.16217808
+ - 0.0062386445
+ - 0.00057007273
+ - 0.0003693214
+ laughterScore: 0
+ - frameNumber: 907
+ frameDelay: 0
+ Visemes:
+ - 0.021639654
+ - 0.17481963
+ - 0.0013620072
+ - 0.0041794013
+ - 0.120485425
+ - 0.009240668
+ - 0.00021462594
+ - 0.52029496
+ - 0.015879298
+ - 0.0005724336
+ - 0.008079343
+ - 0.11372388
+ - 0.006914196
+ - 0.00040874066
+ - 0.0021858024
+ laughterScore: 0
+ - frameNumber: 908
+ frameDelay: 0
+ Visemes:
+ - 0.01727811
+ - 0.3686832
+ - 0.0010248118
+ - 0.0030315877
+ - 0.09139864
+ - 0.0065479083
+ - 0.00015337513
+ - 0.36501348
+ - 0.050858587
+ - 0.00040725947
+ - 0.0066156965
+ - 0.07969908
+ - 0.0074205226
+ - 0.00028684325
+ - 0.0015809677
+ laughterScore: 0
+ - frameNumber: 909
+ frameDelay: 0
+ Visemes:
+ - 0.014695173
+ - 0.5386399
+ - 0.00074676186
+ - 0.0022244728
+ - 0.0643316
+ - 0.0047402214
+ - 0.000107737826
+ - 0.2555277
+ - 0.050737515
+ - 0.00028583195
+ - 0.00490176
+ - 0.055835515
+ - 0.0059141843
+ - 0.00020131336
+ - 0.0011103993
+ laughterScore: 0
+ - frameNumber: 910
+ frameDelay: 0
+ Visemes:
+ - 0.013399225
+ - 0.66772246
+ - 0.00053331954
+ - 0.0015937028
+ - 0.045044653
+ - 0.0033310582
+ - 0.00007582369
+ - 0.1788765
+ - 0.03915203
+ - 0.00020231566
+ - 0.0035455932
+ - 0.040790755
+ - 0.0048088944
+ - 0.00014335691
+ - 0.00078040594
+ laughterScore: 0
+ - frameNumber: 911
+ frameDelay: 0
+ Visemes:
+ - 0.015647858
+ - 0.46877986
+ - 0.00042317255
+ - 0.0011505283
+ - 0.031540945
+ - 0.0023629616
+ - 0.000059748076
+ - 0.12525652
+ - 0.027655205
+ - 0.00016873416
+ - 0.00551501
+ - 0.30139843
+ - 0.01919802
+ - 0.00025991292
+ - 0.00058312045
+ laughterScore: 0
+ - frameNumber: 912
+ frameDelay: 0
+ Visemes:
+ - 0.019299239
+ - 0.32840675
+ - 0.00037356824
+ - 0.0009105246
+ - 0.022191415
+ - 0.0017696869
+ - 0.000049947488
+ - 0.08770642
+ - 0.01967531
+ - 0.00013419166
+ - 0.014804272
+ - 0.48876506
+ - 0.0148311
+ - 0.00064592966
+ - 0.0004365689
+ laughterScore: 0
+ - frameNumber: 913
+ frameDelay: 0
+ Visemes:
+ - 0.0167151
+ - 0.22994095
+ - 0.00028385915
+ - 0.0006631617
+ - 0.015673516
+ - 0.0014027832
+ - 0.000040841398
+ - 0.06142597
+ - 0.013957915
+ - 0.00011793242
+ - 0.018403988
+ - 0.62961876
+ - 0.010833781
+ - 0.0006014333
+ - 0.00031996594
+ laughterScore: 0
+ - frameNumber: 914
+ frameDelay: 0
+ Visemes:
+ - 0.015258203
+ - 0.16111284
+ - 0.00023001124
+ - 0.00051832636
+ - 0.01253008
+ - 0.001367761
+ - 0.00004600449
+ - 0.043061845
+ - 0.009972947
+ - 0.00020352441
+ - 0.019176077
+ - 0.727437
+ - 0.008187246
+ - 0.00066639617
+ - 0.0002316452
+ laughterScore: 0
+ - frameNumber: 915
+ frameDelay: 0
+ Visemes:
+ - 0.013204309
+ - 0.11345746
+ - 0.00019639728
+ - 0.00042089328
+ - 0.036236435
+ - 0.0010560666
+ - 0.00009037045
+ - 0.030681103
+ - 0.008078161
+ - 0.00018173203
+ - 0.014998655
+ - 0.7748219
+ - 0.0059006736
+ - 0.0005112873
+ - 0.00016451305
+ laughterScore: 0
+ - frameNumber: 916
+ frameDelay: 0
+ Visemes:
+ - 0.014902897
+ - 0.10292798
+ - 0.0007778746
+ - 0.0015320865
+ - 0.2121577
+ - 0.004737276
+ - 0.0025932707
+ - 0.022775443
+ - 0.008266618
+ - 0.00029286044
+ - 0.012723904
+ - 0.61162144
+ - 0.004209088
+ - 0.00036603506
+ - 0.00011549472
+ laughterScore: 0
+ - frameNumber: 917
+ frameDelay: 0
+ Visemes:
+ - 0.018781248
+ - 0.26525512
+ - 0.00588096
+ - 0.0024106065
+ - 0.20591925
+ - 0.029130317
+ - 0.0049745287
+ - 0.017898157
+ - 0.0072987145
+ - 0.00023977782
+ - 0.0092588
+ - 0.4296132
+ - 0.0029972352
+ - 0.00026116773
+ - 0.00008090553
+ laughterScore: 0
+ - frameNumber: 918
+ frameDelay: 0
+ Visemes:
+ - 0.023425989
+ - 0.30985907
+ - 0.00914838
+ - 0.0021231442
+ - 0.19393194
+ - 0.039258614
+ - 0.078696564
+ - 0.02736372
+ - 0.005583725
+ - 0.00018329301
+ - 0.0068043317
+ - 0.30117407
+ - 0.0021999811
+ - 0.00019032705
+ - 0.00005689187
+ laughterScore: 0
+ - frameNumber: 919
+ frameDelay: 0
+ Visemes:
+ - 0.026636908
+ - 0.21858092
+ - 0.0069962265
+ - 0.0017323274
+ - 0.17284775
+ - 0.03032167
+ - 0.2872979
+ - 0.033428743
+ - 0.0040087895
+ - 0.00016494447
+ - 0.004928511
+ - 0.21095657
+ - 0.0019170131
+ - 0.00013858872
+ - 0.000043192016
+ laughterScore: 0
+ - frameNumber: 920
+ frameDelay: 0
+ Visemes:
+ - 0.03715717
+ - 0.15437958
+ - 0.0058772364
+ - 0.0028283782
+ - 0.15968108
+ - 0.023024114
+ - 0.35473663
+ - 0.04393056
+ - 0.0036527757
+ - 0.004082796
+ - 0.04626263
+ - 0.14929497
+ - 0.014482994
+ - 0.00022648319
+ - 0.00038269046
+ laughterScore: 0
+ - frameNumber: 921
+ frameDelay: 0
+ Visemes:
+ - 0.034907825
+ - 0.10827705
+ - 0.0043788184
+ - 0.0026707025
+ - 0.11278864
+ - 0.016853759
+ - 0.31931704
+ - 0.031228483
+ - 0.003254827
+ - 0.0065794857
+ - 0.21396765
+ - 0.10827179
+ - 0.026997723
+ - 0.0003059271
+ - 0.010200315
+ laughterScore: 0
+ - frameNumber: 922
+ frameDelay: 0
+ Visemes:
+ - 0.029142309
+ - 0.07580677
+ - 0.0030726532
+ - 0.0020860306
+ - 0.079257846
+ - 0.011860845
+ - 0.22749458
+ - 0.021893281
+ - 0.0028844783
+ - 0.018275885
+ - 0.37471557
+ - 0.07799313
+ - 0.06281468
+ - 0.00040290147
+ - 0.012299087
+ laughterScore: 0
+ - frameNumber: 923
+ frameDelay: 0
+ Visemes:
+ - 0.02402448
+ - 0.05309066
+ - 0.0021573415
+ - 0.0017013204
+ - 0.055688966
+ - 0.008380984
+ - 0.16097873
+ - 0.015404214
+ - 0.0041857264
+ - 0.03999259
+ - 0.46929872
+ - 0.055856097
+ - 0.09744556
+ - 0.0005111495
+ - 0.011283471
+ laughterScore: 0
+ - frameNumber: 924
+ frameDelay: 0
+ Visemes:
+ - 0.021953603
+ - 0.03723169
+ - 0.0015528635
+ - 0.0017706513
+ - 0.03961833
+ - 0.0060473816
+ - 0.11368279
+ - 0.0112647
+ - 0.013229897
+ - 0.09848344
+ - 0.48317868
+ - 0.04033009
+ - 0.12091109
+ - 0.0009538088
+ - 0.009791
+ laughterScore: 0
+ - frameNumber: 925
+ frameDelay: 0
+ Visemes:
+ - 0.018455354
+ - 0.026090095
+ - 0.001173922
+ - 0.00187689
+ - 0.028719185
+ - 0.004411016
+ - 0.080024704
+ - 0.01154501
+ - 0.03811606
+ - 0.11567256
+ - 0.5023179
+ - 0.029292354
+ - 0.13305593
+ - 0.0012131683
+ - 0.008035863
+ laughterScore: 0
+ - frameNumber: 926
+ frameDelay: 0
+ Visemes:
+ - 0.021001307
+ - 0.01829327
+ - 0.0012031796
+ - 0.0017677306
+ - 0.02395026
+ - 0.0031939002
+ - 0.056179345
+ - 0.0923122
+ - 0.03503804
+ - 0.08532334
+ - 0.5027781
+ - 0.021401275
+ - 0.12825453
+ - 0.0020312597
+ - 0.007272279
+ laughterScore: 0
+ - frameNumber: 927
+ frameDelay: 0
+ Visemes:
+ - 0.022288326
+ - 0.0131214885
+ - 0.0013681271
+ - 0.0017056307
+ - 0.024822384
+ - 0.002452291
+ - 0.039365847
+ - 0.3424005
+ - 0.024709437
+ - 0.06009232
+ - 0.35535765
+ - 0.01499616
+ - 0.09060616
+ - 0.0014426629
+ - 0.0052710907
+ laughterScore: 0
+ - frameNumber: 928
+ frameDelay: 0
+ Visemes:
+ - 0.021748573
+ - 0.009511173
+ - 0.0011740809
+ - 0.003912348
+ - 0.025582172
+ - 0.0018769036
+ - 0.027638266
+ - 0.5202795
+ - 0.017504927
+ - 0.04225134
+ - 0.24919644
+ - 0.010518401
+ - 0.06399062
+ - 0.001033502
+ - 0.0037817664
+ laughterScore: 0
+ - frameNumber: 929
+ frameDelay: 0
+ Visemes:
+ - 0.025132312
+ - 0.006892253
+ - 0.00085072895
+ - 0.11722346
+ - 0.061758704
+ - 0.0016083444
+ - 0.01941668
+ - 0.48717785
+ - 0.019496437
+ - 0.02963866
+ - 0.17482957
+ - 0.0074607115
+ - 0.045077745
+ - 0.00074333226
+ - 0.0026933046
+ laughterScore: 0
+ - frameNumber: 930
+ frameDelay: 0
+ Visemes:
+ - 0.026828237
+ - 0.0049123266
+ - 0.0006795049
+ - 0.21362421
+ - 0.16342664
+ - 0.0013284978
+ - 0.0136628775
+ - 0.372012
+ - 0.020429432
+ - 0.020756042
+ - 0.122788996
+ - 0.00528137
+ - 0.031807415
+ - 0.00054540474
+ - 0.0019171187
+ laughterScore: 0
+ - frameNumber: 931
+ frameDelay: 0
+ Visemes:
+ - 0.041662037
+ - 0.0036550777
+ - 0.0005831821
+ - 0.22848135
+ - 0.2601174
+ - 0.001184005
+ - 0.009781267
+ - 0.30462676
+ - 0.01972463
+ - 0.01454001
+ - 0.08709042
+ - 0.0037627977
+ - 0.022958888
+ - 0.00042423964
+ - 0.0014079164
+ laughterScore: 0
+ - frameNumber: 932
+ frameDelay: 0
+ Visemes:
+ - 0.031108866
+ - 0.002620081
+ - 0.00047990325
+ - 0.43969733
+ - 0.1879963
+ - 0.0009256292
+ - 0.0068581887
+ - 0.21531291
+ - 0.018657442
+ - 0.010192822
+ - 0.06440379
+ - 0.0033697335
+ - 0.017021516
+ - 0.00032926176
+ - 0.0010262813
+ laughterScore: 0
+ - frameNumber: 933
+ frameDelay: 0
+ Visemes:
+ - 0.024564363
+ - 0.0018490916
+ - 0.00042113898
+ - 0.32896587
+ - 0.13272145
+ - 0.000964223
+ - 0.0048575182
+ - 0.15097982
+ - 0.013854112
+ - 0.008023554
+ - 0.2265647
+ - 0.03675197
+ - 0.06789001
+ - 0.00062673294
+ - 0.00096549676
+ laughterScore: 0
+ - frameNumber: 934
+ frameDelay: 0
+ Visemes:
+ - 0.018207489
+ - 0.0013020979
+ - 0.000488554
+ - 0.23028761
+ - 0.0943032
+ - 0.0006883305
+ - 0.0034016762
+ - 0.10659631
+ - 0.010528569
+ - 0.0061334223
+ - 0.41018078
+ - 0.028162036
+ - 0.08835169
+ - 0.0006685076
+ - 0.0006998104
+ laughterScore: 0
+ - frameNumber: 935
+ frameDelay: 0
+ Visemes:
+ - 0.015716475
+ - 0.00092096714
+ - 0.00046715117
+ - 0.16145588
+ - 0.06990252
+ - 0.0005280705
+ - 0.0025236253
+ - 0.3593925
+ - 0.0075271074
+ - 0.0043060724
+ - 0.29387924
+ - 0.019726947
+ - 0.06269287
+ - 0.00046882845
+ - 0.0004917938
+ laughterScore: 0
+ - frameNumber: 936
+ frameDelay: 0
+ Visemes:
+ - 0.013849186
+ - 0.00065231824
+ - 0.00052091526
+ - 0.11321235
+ - 0.05135091
+ - 0.0004788495
+ - 0.0037774425
+ - 0.5429205
+ - 0.0052941977
+ - 0.0030188437
+ - 0.20628178
+ - 0.01381345
+ - 0.044145484
+ - 0.0003304991
+ - 0.00035332944
+ laughterScore: 0
+ - frameNumber: 937
+ frameDelay: 0
+ Visemes:
+ - 0.012755005
+ - 0.00046684605
+ - 0.00058765314
+ - 0.0793586
+ - 0.043199327
+ - 0.0005360545
+ - 0.018082526
+ - 0.65270054
+ - 0.0037209014
+ - 0.002123547
+ - 0.14480415
+ - 0.009671938
+ - 0.03149512
+ - 0.00023378394
+ - 0.00026401563
+ laughterScore: 0
+ - frameNumber: 938
+ frameDelay: 0
+ Visemes:
+ - 0.012868879
+ - 0.0004124401
+ - 0.0026009013
+ - 0.056225847
+ - 0.06350617
+ - 0.000835262
+ - 0.014227451
+ - 0.7099643
+ - 0.002652986
+ - 0.0016596962
+ - 0.101768315
+ - 0.0067765745
+ - 0.025715265
+ - 0.00017499494
+ - 0.000610964
+ laughterScore: 0
+ - frameNumber: 939
+ frameDelay: 0
+ Visemes:
+ - 0.0107461
+ - 0.00096035696
+ - 0.0074267285
+ - 0.039706394
+ - 0.32192227
+ - 0.0010626437
+ - 0.011192827
+ - 0.50803536
+ - 0.0018870571
+ - 0.0014249845
+ - 0.07126797
+ - 0.0047501097
+ - 0.018718481
+ - 0.0001994232
+ - 0.00069928414
+ laughterScore: 0
+ - frameNumber: 940
+ frameDelay: 0
+ Visemes:
+ - 0.008933486
+ - 0.00078621873
+ - 0.0076923305
+ - 0.02827912
+ - 0.345732
+ - 0.0009109554
+ - 0.008198806
+ - 0.35779983
+ - 0.0015052935
+ - 0.17154074
+ - 0.050307196
+ - 0.0033382461
+ - 0.013275889
+ - 0.00087783684
+ - 0.0008220157
+ laughterScore: 0
+ - frameNumber: 941
+ frameDelay: 0
+ Visemes:
+ - 0.008645919
+ - 0.00084737083
+ - 0.00642801
+ - 0.020080796
+ - 0.25924852
+ - 0.0007709951
+ - 0.00697802
+ - 0.2505817
+ - 0.0012632725
+ - 0.3589967
+ - 0.06744643
+ - 0.0032658784
+ - 0.009396055
+ - 0.0047180136
+ - 0.0013322735
+ laughterScore: 0
+ - frameNumber: 942
+ frameDelay: 0
+ Visemes:
+ - 0.0115563115
+ - 0.00065346685
+ - 0.0046440796
+ - 0.014059597
+ - 0.18204035
+ - 0.00090698025
+ - 0.0057966094
+ - 0.17541419
+ - 0.0009412545
+ - 0.48359555
+ - 0.09263317
+ - 0.015143907
+ - 0.0066625345
+ - 0.0049585025
+ - 0.0009934581
+ laughterScore: 0
+ - frameNumber: 943
+ frameDelay: 0
+ Visemes:
+ - 0.022961877
+ - 0.00056531106
+ - 0.0033692014
+ - 0.009855142
+ - 0.12862173
+ - 0.0023445
+ - 0.0043079327
+ - 0.12283985
+ - 0.0011197943
+ - 0.34286925
+ - 0.2696243
+ - 0.07321237
+ - 0.008093861
+ - 0.009489603
+ - 0.00072528975
+ laughterScore: 0
+ - frameNumber: 944
+ frameDelay: 0
+ Visemes:
+ - 0.030022498
+ - 0.001022727
+ - 0.0025372764
+ - 0.006931496
+ - 0.09283459
+ - 0.0025773612
+ - 0.0033579231
+ - 0.086049974
+ - 0.0017233014
+ - 0.24247698
+ - 0.38207495
+ - 0.12369084
+ - 0.010694113
+ - 0.013453159
+ - 0.0005527701
+ laughterScore: 0
+ - frameNumber: 945
+ frameDelay: 0
+ Visemes:
+ - 0.035908908
+ - 0.0014898621
+ - 0.0019667093
+ - 0.0049386704
+ - 0.07001509
+ - 0.006973277
+ - 0.0029537305
+ - 0.060636427
+ - 0.016338667
+ - 0.17784406
+ - 0.33697784
+ - 0.25583506
+ - 0.012393905
+ - 0.015283978
+ - 0.00044377902
+ laughterScore: 0
+ - frameNumber: 946
+ frameDelay: 0
+ Visemes:
+ - 0.03554257
+ - 0.0042318273
+ - 0.0017015033
+ - 0.0035039836
+ - 0.06246298
+ - 0.05230653
+ - 0.004536111
+ - 0.044712856
+ - 0.09690567
+ - 0.12504524
+ - 0.2660688
+ - 0.27974463
+ - 0.010668682
+ - 0.0122412015
+ - 0.00032742805
+ laughterScore: 0
+ - frameNumber: 947
+ frameDelay: 0
+ Visemes:
+ - 0.028695142
+ - 0.011944679
+ - 0.0012397658
+ - 0.0024839675
+ - 0.04790223
+ - 0.23686008
+ - 0.0032282805
+ - 0.031322587
+ - 0.14886534
+ - 0.08754377
+ - 0.18714832
+ - 0.19593327
+ - 0.008007348
+ - 0.008575708
+ - 0.00024951776
+ laughterScore: 0
+ - frameNumber: 948
+ frameDelay: 0
+ Visemes:
+ - 0.024509955
+ - 0.017912023
+ - 0.0010708774
+ - 0.0019576685
+ - 0.04599209
+ - 0.36918032
+ - 0.002482507
+ - 0.02199549
+ - 0.16959526
+ - 0.06131508
+ - 0.13327003
+ - 0.13739212
+ - 0.0068319235
+ - 0.0060218493
+ - 0.0004728064
+ laughterScore: 0
+ - frameNumber: 949
+ frameDelay: 0
+ Visemes:
+ - 0.021452216
+ - 0.014355502
+ - 0.0009864433
+ - 0.0028282746
+ - 0.06482288
+ - 0.37014425
+ - 0.0020047813
+ - 0.015435705
+ - 0.16089825
+ - 0.04304098
+ - 0.09500677
+ - 0.096582524
+ - 0.1066095
+ - 0.004249137
+ - 0.0015827395
+ laughterScore: 0
+ - frameNumber: 950
+ frameDelay: 0
+ Visemes:
+ - 0.027291296
+ - 0.010263053
+ - 0.00070829666
+ - 0.002634142
+ - 0.05537748
+ - 0.26423982
+ - 0.0018537107
+ - 0.011003325
+ - 0.118138246
+ - 0.03701875
+ - 0.13894549
+ - 0.08868768
+ - 0.20971498
+ - 0.0034130034
+ - 0.030710697
+ laughterScore: 0
+ - frameNumber: 951
+ frameDelay: 0
+ Visemes:
+ - 0.021600785
+ - 0.007213029
+ - 0.00052444555
+ - 0.0019007749
+ - 0.04233152
+ - 0.18629718
+ - 0.0013184415
+ - 0.0107399635
+ - 0.083695784
+ - 0.032255378
+ - 0.1294105
+ - 0.063186795
+ - 0.38921165
+ - 0.0028118817
+ - 0.027501857
+ laughterScore: 0
+ - frameNumber: 952
+ frameDelay: 0
+ Visemes:
+ - 0.02708805
+ - 0.0052135596
+ - 0.0007116999
+ - 0.0041635456
+ - 0.0637007
+ - 0.13569707
+ - 0.00096918026
+ - 0.2232149
+ - 0.06467198
+ - 0.024162348
+ - 0.10720994
+ - 0.04428743
+ - 0.27608857
+ - 0.001973345
+ - 0.020847699
+ laughterScore: 0
+ - frameNumber: 953
+ frameDelay: 0
+ Visemes:
+ - 0.026763031
+ - 0.003800887
+ - 0.0006631874
+ - 0.0040848507
+ - 0.059026785
+ - 0.09522176
+ - 0.0007040794
+ - 0.43072808
+ - 0.04556982
+ - 0.016957717
+ - 0.075724296
+ - 0.031033562
+ - 0.19373843
+ - 0.0013834718
+ - 0.014600041
+ laughterScore: 0
+ - frameNumber: 954
+ frameDelay: 0
+ Visemes:
+ - 0.027102001
+ - 0.002988324
+ - 0.0006183412
+ - 0.0044711344
+ - 0.06398168
+ - 0.06682323
+ - 0.00055258116
+ - 0.5665995
+ - 0.032041434
+ - 0.011891061
+ - 0.05360682
+ - 0.021809326
+ - 0.13628107
+ - 0.0009741115
+ - 0.010259402
+ laughterScore: 0
+ - frameNumber: 955
+ frameDelay: 0
+ Visemes:
+ - 0.03172342
+ - 0.0023282825
+ - 0.0005135599
+ - 0.008215882
+ - 0.08968097
+ - 0.047029834
+ - 0.0004295896
+ - 0.62885845
+ - 0.023073385
+ - 0.008338612
+ - 0.038864966
+ - 0.015457382
+ - 0.0975124
+ - 0.0007137941
+ - 0.007259512
+ laughterScore: 0
+ - frameNumber: 956
+ frameDelay: 0
+ Visemes:
+ - 0.045704924
+ - 0.0032776785
+ - 0.00044683606
+ - 0.018500514
+ - 0.17442901
+ - 0.0334921
+ - 0.00036153558
+ - 0.57950675
+ - 0.02114952
+ - 0.0058451258
+ - 0.02967713
+ - 0.010967968
+ - 0.070891045
+ - 0.0005387264
+ - 0.0052111545
+ laughterScore: 0
+ - frameNumber: 957
+ frameDelay: 0
+ Visemes:
+ - 0.054960143
+ - 0.10259319
+ - 0.0031014609
+ - 0.019034294
+ - 0.20232819
+ - 0.025295705
+ - 0.00050673395
+ - 0.47875598
+ - 0.015615525
+ - 0.0041505187
+ - 0.028266827
+ - 0.007892102
+ - 0.052863937
+ - 0.00040934555
+ - 0.0042260834
+ laughterScore: 0
+ - frameNumber: 958
+ frameDelay: 0
+ Visemes:
+ - 0.06049994
+ - 0.28880864
+ - 0.0059526525
+ - 0.018979754
+ - 0.16920468
+ - 0.018678343
+ - 0.00079498626
+ - 0.34392935
+ - 0.016007924
+ - 0.0031164407
+ - 0.023392117
+ - 0.0069929175
+ - 0.03926743
+ - 0.00030092723
+ - 0.004073867
+ laughterScore: 0
+ - frameNumber: 959
+ frameDelay: 0
+ Visemes:
+ - 0.06253725
+ - 0.44513124
+ - 0.0095913755
+ - 0.018058822
+ - 0.12311798
+ - 0.013769245
+ - 0.00093220075
+ - 0.24400802
+ - 0.018579436
+ - 0.0024127557
+ - 0.019155717
+ - 0.007954375
+ - 0.030364465
+ - 0.0002631481
+ - 0.004123925
+ laughterScore: 0
+ - frameNumber: 960
+ frameDelay: 0
+ Visemes:
+ - 0.053087994
+ - 0.5258423
+ - 0.009955538
+ - 0.014200402
+ - 0.09036668
+ - 0.01100365
+ - 0.0009055764
+ - 0.17181513
+ - 0.015208943
+ - 0.0018271091
+ - 0.025236221
+ - 0.0070094774
+ - 0.06942967
+ - 0.00020067694
+ - 0.003910614
+ laughterScore: 0
+ - frameNumber: 961
+ frameDelay: 0
+ Visemes:
+ - 0.04235834
+ - 0.40975595
+ - 0.009284508
+ - 0.011500971
+ - 0.064271376
+ - 0.0085396385
+ - 0.0007325043
+ - 0.12042114
+ - 0.01152233
+ - 0.00141452
+ - 0.03150407
+ - 0.0085292375
+ - 0.2766915
+ - 0.00015236721
+ - 0.0033215433
+ laughterScore: 0
+ - frameNumber: 962
+ frameDelay: 0
+ Visemes:
+ - 0.032304693
+ - 0.28720257
+ - 0.006639336
+ - 0.008373555
+ - 0.04548603
+ - 0.0060344366
+ - 0.0005368834
+ - 0.08435292
+ - 0.008448287
+ - 0.0010915734
+ - 0.03227454
+ - 0.009295744
+ - 0.47472706
+ - 0.00013560188
+ - 0.0030967356
+ laughterScore: 0
+ - frameNumber: 963
+ frameDelay: 0
+ Visemes:
+ - 0.025008678
+ - 0.2010695
+ - 0.004696546
+ - 0.005961258
+ - 0.03326068
+ - 0.004271072
+ - 0.0003909816
+ - 0.059098672
+ - 0.0064901984
+ - 0.0009217464
+ - 0.032473616
+ - 0.0094960965
+ - 0.6137147
+ - 0.00012096445
+ - 0.0030252743
+ laughterScore: 0
+ - frameNumber: 964
+ frameDelay: 0
+ Visemes:
+ - 0.01859697
+ - 0.14077173
+ - 0.003345103
+ - 0.0042101257
+ - 0.024440128
+ - 0.0030219378
+ - 0.00040126935
+ - 0.048847727
+ - 0.004891671
+ - 0.00078874646
+ - 0.02627121
+ - 0.007346365
+ - 0.71457976
+ - 0.0000921714
+ - 0.0023950955
+ laughterScore: 0
+ - frameNumber: 965
+ frameDelay: 0
+ Visemes:
+ - 0.018714504
+ - 0.09860104
+ - 0.002703967
+ - 0.003198107
+ - 0.021922294
+ - 0.0026092865
+ - 0.0039850804
+ - 0.3090271
+ - 0.003796059
+ - 0.00066069234
+ - 0.019556575
+ - 0.0051842798
+ - 0.50827754
+ - 0.000065306696
+ - 0.0016981629
+ laughterScore: 0
+ - frameNumber: 966
+ frameDelay: 0
+ Visemes:
+ - 0.016490951
+ - 0.06908771
+ - 0.0021261543
+ - 0.0024682377
+ - 0.018719848
+ - 0.0019534982
+ - 0.0034163613
+ - 0.50372255
+ - 0.0029889166
+ - 0.0005763269
+ - 0.014043838
+ - 0.0036629648
+ - 0.35950363
+ - 0.00004603847
+ - 0.0011929296
+ laughterScore: 0
+ - frameNumber: 967
+ frameDelay: 0
+ Visemes:
+ - 0.015684666
+ - 0.04871126
+ - 0.0017390156
+ - 0.004823502
+ - 0.020300608
+ - 0.0016592152
+ - 0.0038282245
+ - 0.6309647
+ - 0.0029222064
+ - 0.00056563
+ - 0.010064234
+ - 0.002596757
+ - 0.25524697
+ - 0.000032364693
+ - 0.0008606851
+ laughterScore: 0
+ - frameNumber: 968
+ frameDelay: 0
+ Visemes:
+ - 0.022419577
+ - 0.034861024
+ - 0.0015404127
+ - 0.014687463
+ - 0.025047077
+ - 0.004263096
+ - 0.0034055766
+ - 0.6458119
+ - 0.00436861
+ - 0.00044553602
+ - 0.010299101
+ - 0.0024980546
+ - 0.2294904
+ - 0.000028066646
+ - 0.00083409995
+ laughterScore: 0
+ - frameNumber: 969
+ frameDelay: 0
+ Visemes:
+ - 0.019539421
+ - 0.024655076
+ - 0.0011387696
+ - 0.011093241
+ - 0.018413905
+ - 0.0040922835
+ - 0.0024658404
+ - 0.45280838
+ - 0.0037785806
+ - 0.0004296838
+ - 0.009901637
+ - 0.002371419
+ - 0.4481697
+ - 0.000030297486
+ - 0.0011117517
+ laughterScore: 0
+ - frameNumber: 970
+ frameDelay: 0
+ Visemes:
+ - 0.019236375
+ - 0.017436149
+ - 0.00090025837
+ - 0.00807307
+ - 0.0143588
+ - 0.008058578
+ - 0.0019605884
+ - 0.31746486
+ - 0.004452443
+ - 0.00050280604
+ - 0.008214877
+ - 0.00231775
+ - 0.5950124
+ - 0.00005076964
+ - 0.0019602173
+ laughterScore: 0
+ - frameNumber: 971
+ frameDelay: 0
+ Visemes:
+ - 0.020150594
+ - 0.012651581
+ - 0.00085740804
+ - 0.0057463255
+ - 0.012310417
+ - 0.060882144
+ - 0.0014404133
+ - 0.22236058
+ - 0.015189215
+ - 0.00041817006
+ - 0.0068691303
+ - 0.002802048
+ - 0.6357869
+ - 0.000053510703
+ - 0.0024815686
+ laughterScore: 0
+ - frameNumber: 972
+ frameDelay: 0
+ Visemes:
+ - 0.019737948
+ - 0.009615021
+ - 0.00072637503
+ - 0.004117283
+ - 0.009716813
+ - 0.04785225
+ - 0.0010607576
+ - 0.15572412
+ - 0.021466145
+ - 0.00032007613
+ - 0.005544448
+ - 0.00494612
+ - 0.7169888
+ - 0.0000577463
+ - 0.0021260856
+ laughterScore: 0
+ - frameNumber: 973
+ frameDelay: 0
+ Visemes:
+ - 0.019204542
+ - 0.008717068
+ - 0.00070871424
+ - 0.0029443214
+ - 0.0072141723
+ - 0.05382014
+ - 0.00078048516
+ - 0.10909988
+ - 0.024250917
+ - 0.0002655731
+ - 0.0043522585
+ - 0.005856164
+ - 0.76097184
+ - 0.000048035523
+ - 0.0017658669
+ laughterScore: 0
+ - frameNumber: 974
+ frameDelay: 0
+ Visemes:
+ - 0.019226972
+ - 0.032497734
+ - 0.0009847839
+ - 0.0022410224
+ - 0.005474875
+ - 0.11143628
+ - 0.0005864658
+ - 0.07651798
+ - 0.06161847
+ - 0.00021642391
+ - 0.0041348785
+ - 0.006908087
+ - 0.67543584
+ - 0.000052196487
+ - 0.0026679388
+ laughterScore: 0
+ - frameNumber: 975
+ frameDelay: 0
+ Visemes:
+ - 0.018059457
+ - 0.054321475
+ - 0.002328
+ - 0.0016745606
+ - 0.004657984
+ - 0.120654225
+ - 0.00044011063
+ - 0.05364403
+ - 0.06740392
+ - 0.00018418775
+ - 0.0032179588
+ - 0.0059271194
+ - 0.66053206
+ - 0.000050334736
+ - 0.0069045387
+ laughterScore: 0
+ - frameNumber: 976
+ frameDelay: 0
+ Visemes:
+ - 0.017517846
+ - 0.16510782
+ - 0.0022971248
+ - 0.0013724621
+ - 0.004159161
+ - 0.1479064
+ - 0.0003239223
+ - 0.037621297
+ - 0.12236212
+ - 0.00016533022
+ - 0.0023829427
+ - 0.0043395064
+ - 0.48857582
+ - 0.000041217896
+ - 0.005827026
+ laughterScore: 0
+ - frameNumber: 977
+ frameDelay: 0
+ Visemes:
+ - 0.019667674
+ - 0.2860631
+ - 0.0020267775
+ - 0.0010973965
+ - 0.0037777764
+ - 0.1572141
+ - 0.0002694068
+ - 0.02644839
+ - 0.124288425
+ - 0.00013072089
+ - 0.0017781071
+ - 0.0033102161
+ - 0.36950517
+ - 0.00003561072
+ - 0.0043870904
+ laughterScore: 0
+ - frameNumber: 978
+ frameDelay: 0
+ Visemes:
+ - 0.023973415
+ - 0.37132585
+ - 0.0020556028
+ - 0.0013451547
+ - 0.0072283857
+ - 0.14884269
+ - 0.00053768
+ - 0.018641418
+ - 0.12833142
+ - 0.000115257484
+ - 0.0012952423
+ - 0.0030103677
+ - 0.28977153
+ - 0.00004589586
+ - 0.0034800854
+ laughterScore: 0
+ - frameNumber: 979
+ frameDelay: 0
+ Visemes:
+ - 0.038573883
+ - 0.43392247
+ - 0.0021534802
+ - 0.0029458776
+ - 0.009375388
+ - 0.13486347
+ - 0.00071676064
+ - 0.0133781135
+ - 0.13260293
+ - 0.00010472506
+ - 0.0009984196
+ - 0.0035525614
+ - 0.22369291
+ - 0.00008414249
+ - 0.00303488
+ laughterScore: 0
+ - frameNumber: 980
+ frameDelay: 0
+ Visemes:
+ - 0.05025848
+ - 0.44353396
+ - 0.0018464056
+ - 0.00845408
+ - 0.011964655
+ - 0.1285254
+ - 0.00055013475
+ - 0.00952564
+ - 0.16499656
+ - 0.00008457253
+ - 0.00078685966
+ - 0.0029899057
+ - 0.17411529
+ - 0.00014462454
+ - 0.0022234486
+ laughterScore: 0
+ - frameNumber: 981
+ frameDelay: 0
+ Visemes:
+ - 0.05551331
+ - 0.4172201
+ - 0.0014738087
+ - 0.008315136
+ - 0.011374962
+ - 0.14990288
+ - 0.00040858574
+ - 0.0067752143
+ - 0.2186074
+ - 0.00006624252
+ - 0.00069314067
+ - 0.0021793859
+ - 0.12564889
+ - 0.00019077488
+ - 0.0016301974
+ laughterScore: 0
+ - frameNumber: 982
+ frameDelay: 0
+ Visemes:
+ - 0.05348167
+ - 0.33999434
+ - 0.0010892459
+ - 0.0070753815
+ - 0.010234745
+ - 0.18610555
+ - 0.00029988313
+ - 0.0048201852
+ - 0.29750982
+ - 0.00005689893
+ - 0.0006694904
+ - 0.0015864657
+ - 0.09561688
+ - 0.0002312392
+ - 0.0012282368
+ laughterScore: 0
+ - frameNumber: 983
+ frameDelay: 0
+ Visemes:
+ - 0.12357791
+ - 0.34052232
+ - 0.00078928686
+ - 0.00522446
+ - 0.008592434
+ - 0.17186633
+ - 0.0002386278
+ - 0.0033997083
+ - 0.27092877
+ - 0.000050307404
+ - 0.0012404707
+ - 0.0011581077
+ - 0.071146674
+ - 0.00037281215
+ - 0.00089178595
+ laughterScore: 0
+ - frameNumber: 984
+ frameDelay: 0
+ Visemes:
+ - 0.29066586
+ - 0.2609484
+ - 0.0005690464
+ - 0.0039466596
+ - 0.008116516
+ - 0.14072937
+ - 0.00031691787
+ - 0.0024592418
+ - 0.2378025
+ - 0.000053449236
+ - 0.0013121098
+ - 0.0009413609
+ - 0.05108589
+ - 0.00037169587
+ - 0.0006810155
+ laughterScore: 0
+ - frameNumber: 985
+ frameDelay: 0
+ Visemes:
+ - 0.48198384
+ - 0.18649976
+ - 0.00041365248
+ - 0.0030299053
+ - 0.008194108
+ - 0.100343995
+ - 0.0004740507
+ - 0.0018261039
+ - 0.17781875
+ - 0.00006791488
+ - 0.0012743102
+ - 0.00079374376
+ - 0.03629637
+ - 0.00037092564
+ - 0.00061258214
+ laughterScore: 0
+ - frameNumber: 986
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 987
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 988
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 989
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 990
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 991
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 992
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 993
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 994
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 995
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 996
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 997
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 998
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 999
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1000
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1001
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1002
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1003
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1004
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1005
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1006
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1007
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1008
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1009
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1010
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1011
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1012
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1013
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1014
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1015
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1016
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1017
+ frameDelay: 0
+ Visemes:
+ - 0.42658126
+ - 0.064048104
+ - 0.002132564
+ - 0.0042586913
+ - 0.0014137697
+ - 0.015785675
+ - 0.00034148587
+ - 0.0018297853
+ - 0.009963066
+ - 0.0038365023
+ - 0.4016207
+ - 0.009147195
+ - 0.0031463248
+ - 0.051071256
+ - 0.004823617
+ laughterScore: 0
+ - frameNumber: 1018
+ frameDelay: 0
+ Visemes:
+ - 0.3104071
+ - 0.045016523
+ - 0.001528659
+ - 0.0030151238
+ - 0.0013030627
+ - 0.012617132
+ - 0.00025156097
+ - 0.0013026873
+ - 0.0094178645
+ - 0.0064915456
+ - 0.54344153
+ - 0.011570564
+ - 0.0026815888
+ - 0.047343574
+ - 0.00361149
+ laughterScore: 0
+ - frameNumber: 1019
+ frameDelay: 0
+ Visemes:
+ - 0.22710712
+ - 0.032844525
+ - 0.0013685012
+ - 0.002363768
+ - 0.0045872014
+ - 0.00950341
+ - 0.00039072026
+ - 0.0010564529
+ - 0.016916975
+ - 0.016949043
+ - 0.6166882
+ - 0.01719054
+ - 0.0037916922
+ - 0.041708626
+ - 0.007533237
+ laughterScore: 0
+ - frameNumber: 1020
+ frameDelay: 0
+ Visemes:
+ - 0.16740401
+ - 0.024348665
+ - 0.0010898458
+ - 0.0020669657
+ - 0.010078875
+ - 0.010926644
+ - 0.005398894
+ - 0.0019001521
+ - 0.04600312
+ - 0.019445118
+ - 0.6201652
+ - 0.016029848
+ - 0.023160674
+ - 0.040703297
+ - 0.011278677
+ laughterScore: 0
+ - frameNumber: 1021
+ frameDelay: 0
+ Visemes:
+ - 0.12324391
+ - 0.017516738
+ - 0.0009555345
+ - 0.007325324
+ - 0.041923888
+ - 0.22681208
+ - 0.005085355
+ - 0.0031246715
+ - 0.03696464
+ - 0.01427801
+ - 0.45453137
+ - 0.0121264085
+ - 0.017300364
+ - 0.030689694
+ - 0.008122
+ laughterScore: 0
+ - frameNumber: 1022
+ frameDelay: 0
+ Visemes:
+ - 0.09025888
+ - 0.012376374
+ - 0.0009035983
+ - 0.027144369
+ - 0.054688577
+ - 0.39212418
+ - 0.004289097
+ - 0.003027288
+ - 0.026150776
+ - 0.010034623
+ - 0.3306186
+ - 0.008552166
+ - 0.012431453
+ - 0.021703983
+ - 0.0056960243
+ laughterScore: 0
+ - frameNumber: 1023
+ frameDelay: 0
+ Visemes:
+ - 0.06606217
+ - 0.008700602
+ - 0.0006518513
+ - 0.021578962
+ - 0.16205983
+ - 0.37764648
+ - 0.066401005
+ - 0.0049218833
+ - 0.018377792
+ - 0.007054597
+ - 0.23232846
+ - 0.00606088
+ - 0.008872467
+ - 0.015279023
+ - 0.0040039914
+ laughterScore: 0
+ - frameNumber: 1024
+ frameDelay: 0
+ Visemes:
+ - 0.05123214
+ - 0.006201233
+ - 0.0005647736
+ - 0.015588177
+ - 0.14229527
+ - 0.44188562
+ - 0.10821539
+ - 0.028992973
+ - 0.012877425
+ - 0.0049564536
+ - 0.16297165
+ - 0.0042842478
+ - 0.0063697244
+ - 0.010729597
+ - 0.0028352928
+ laughterScore: 0
+ - frameNumber: 1025
+ frameDelay: 0
+ Visemes:
+ - 0.043665595
+ - 0.00439199
+ - 0.00044229307
+ - 0.011033387
+ - 0.099784836
+ - 0.41029018
+ - 0.08748126
+ - 0.02047142
+ - 0.009059206
+ - 0.0036894062
+ - 0.2589589
+ - 0.01583192
+ - 0.020928761
+ - 0.007604953
+ - 0.0063658906
+ laughterScore: 0
+ - frameNumber: 1026
+ frameDelay: 0
+ Visemes:
+ - 0.04040278
+ - 0.0031580045
+ - 0.00034842675
+ - 0.007920551
+ - 0.070030615
+ - 0.29291967
+ - 0.123992145
+ - 0.014541473
+ - 0.0066040726
+ - 0.004171798
+ - 0.30566588
+ - 0.0670447
+ - 0.041515477
+ - 0.0077448417
+ - 0.013939586
+ laughterScore: 0
+ - frameNumber: 1027
+ frameDelay: 0
+ Visemes:
+ - 0.048723683
+ - 0.0028424007
+ - 0.00036965145
+ - 0.005759733
+ - 0.050837293
+ - 0.20756444
+ - 0.08846383
+ - 0.010752219
+ - 0.05383969
+ - 0.00984933
+ - 0.33156893
+ - 0.06412068
+ - 0.048392616
+ - 0.05000975
+ - 0.026905786
+ laughterScore: 0
+ - frameNumber: 1028
+ frameDelay: 0
+ Visemes:
+ - 0.04115918
+ - 0.0021503528
+ - 0.00037914663
+ - 0.004107533
+ - 0.036408707
+ - 0.14632879
+ - 0.06198157
+ - 0.008170103
+ - 0.2708713
+ - 0.011534924
+ - 0.26178265
+ - 0.04658715
+ - 0.0422453
+ - 0.038211018
+ - 0.028082296
+ laughterScore: 0
+ - frameNumber: 1029
+ frameDelay: 0
+ Visemes:
+ - 0.03159604
+ - 0.0016383277
+ - 0.00036336225
+ - 0.0030783003
+ - 0.02582352
+ - 0.102657415
+ - 0.04341185
+ - 0.0059411135
+ - 0.47478694
+ - 0.009940373
+ - 0.18560538
+ - 0.032683443
+ - 0.029794022
+ - 0.027877148
+ - 0.024802797
+ laughterScore: 0
+ - frameNumber: 1030
+ frameDelay: 0
+ Visemes:
+ - 0.02415364
+ - 0.0011908473
+ - 0.0002909103
+ - 0.0022801554
+ - 0.018290168
+ - 0.07202554
+ - 0.030398555
+ - 0.0041952315
+ - 0.6108599
+ - 0.007490032
+ - 0.13626991
+ - 0.023059502
+ - 0.021952547
+ - 0.019992508
+ - 0.027550599
+ laughterScore: 0
+ - frameNumber: 1031
+ frameDelay: 0
+ Visemes:
+ - 0.020098222
+ - 0.00088735926
+ - 0.0003552385
+ - 0.0018282493
+ - 0.013075833
+ - 0.050893094
+ - 0.02135701
+ - 0.0031731185
+ - 0.4590854
+ - 0.006464045
+ - 0.32143202
+ - 0.017407933
+ - 0.04092169
+ - 0.016187215
+ - 0.026833564
+ laughterScore: 0
+ - frameNumber: 1032
+ frameDelay: 0
+ Visemes:
+ - 0.018628579
+ - 0.00073103904
+ - 0.0008072255
+ - 0.0034636017
+ - 0.019439835
+ - 0.035762433
+ - 0.014965455
+ - 0.25589606
+ - 0.33594096
+ - 0.004827879
+ - 0.23681
+ - 0.01222532
+ - 0.030171432
+ - 0.011477527
+ - 0.018852698
+ laughterScore: 0
+ - frameNumber: 1033
+ frameDelay: 0
+ Visemes:
+ - 0.027597226
+ - 0.000814803
+ - 0.0009872969
+ - 0.009204561
+ - 0.038591865
+ - 0.025400907
+ - 0.01050865
+ - 0.42870283
+ - 0.23560764
+ - 0.0034432115
+ - 0.16779616
+ - 0.008570864
+ - 0.021477452
+ - 0.008066838
+ - 0.013229727
+ laughterScore: 0
+ - frameNumber: 1034
+ frameDelay: 0
+ Visemes:
+ - 0.03197291
+ - 0.0008273469
+ - 0.00094395387
+ - 0.00954037
+ - 0.039318006
+ - 0.017983522
+ - 0.007389347
+ - 0.5695145
+ - 0.16526142
+ - 0.0024463485
+ - 0.11816774
+ - 0.0060247607
+ - 0.015544762
+ - 0.0056908857
+ - 0.009374161
+ laughterScore: 0
+ - frameNumber: 1035
+ frameDelay: 0
+ Visemes:
+ - 0.034675397
+ - 0.0007034048
+ - 0.00084172504
+ - 0.009174735
+ - 0.053776495
+ - 0.01285767
+ - 0.0052509806
+ - 0.65458655
+ - 0.11617397
+ - 0.0017334576
+ - 0.08379325
+ - 0.004245988
+ - 0.0114528155
+ - 0.00406467
+ - 0.0066688964
+ laughterScore: 0
+ - frameNumber: 1036
+ frameDelay: 0
+ Visemes:
+ - 0.046198055
+ - 0.0026597101
+ - 0.0010534378
+ - 0.015458972
+ - 0.16003498
+ - 0.011718802
+ - 0.0037585353
+ - 0.58921325
+ - 0.08943184
+ - 0.001237802
+ - 0.05995091
+ - 0.0029937467
+ - 0.008560456
+ - 0.0029088426
+ - 0.0048206546
+ laughterScore: 0
+ - frameNumber: 1037
+ frameDelay: 0
+ Visemes:
+ - 0.04480037
+ - 0.04485724
+ - 0.001269772
+ - 0.040292315
+ - 0.1837745
+ - 0.0094013475
+ - 0.0027205572
+ - 0.45069286
+ - 0.12851179
+ - 0.00096782227
+ - 0.07052671
+ - 0.0029249815
+ - 0.012385346
+ - 0.0021302123
+ - 0.0047441665
+ laughterScore: 0
+ - frameNumber: 1038
+ frameDelay: 0
+ Visemes:
+ - 0.03448589
+ - 0.032294672
+ - 0.0010519612
+ - 0.02878504
+ - 0.1294042
+ - 0.0066674026
+ - 0.0019121857
+ - 0.31578884
+ - 0.3703557
+ - 0.00076963584
+ - 0.051173232
+ - 0.0022275331
+ - 0.009165484
+ - 0.0016599036
+ - 0.014258347
+ laughterScore: 0
+ - frameNumber: 1039
+ frameDelay: 0
+ Visemes:
+ - 0.032531016
+ - 0.025522364
+ - 0.0007902708
+ - 0.020460626
+ - 0.09100208
+ - 0.00483049
+ - 0.0013478874
+ - 0.22113313
+ - 0.53448606
+ - 0.00060065265
+ - 0.037064545
+ - 0.004006061
+ - 0.009081859
+ - 0.0013076387
+ - 0.015835337
+ laughterScore: 0
+ - frameNumber: 1040
+ frameDelay: 0
+ Visemes:
+ - 0.037606318
+ - 0.017945932
+ - 0.0005570568
+ - 0.014618428
+ - 0.06385166
+ - 0.003710733
+ - 0.0009829596
+ - 0.15481521
+ - 0.47456712
+ - 0.0005870714
+ - 0.060155198
+ - 0.08011406
+ - 0.0773294
+ - 0.00094089756
+ - 0.012217965
+ laughterScore: 0
+ - frameNumber: 1041
+ frameDelay: 0
+ Visemes:
+ - 0.04246874
+ - 0.012672184
+ - 0.0003964062
+ - 0.010853063
+ - 0.045546297
+ - 0.0031879619
+ - 0.00077512674
+ - 0.10843576
+ - 0.33772048
+ - 0.0012993445
+ - 0.07440512
+ - 0.14471254
+ - 0.20687792
+ - 0.0010555865
+ - 0.009593494
+ laughterScore: 0
+ - frameNumber: 1042
+ frameDelay: 0
+ Visemes:
+ - 0.040411107
+ - 0.010198717
+ - 0.0017049159
+ - 0.01009034
+ - 0.065866075
+ - 0.008472483
+ - 0.0006857586
+ - 0.076041095
+ - 0.23794217
+ - 0.0016242433
+ - 0.059416626
+ - 0.14071235
+ - 0.33475685
+ - 0.0010840889
+ - 0.010993171
+ laughterScore: 0
+ - frameNumber: 1043
+ frameDelay: 0
+ Visemes:
+ - 0.038429897
+ - 0.09922688
+ - 0.0059234
+ - 0.02368396
+ - 0.15393232
+ - 0.016879842
+ - 0.0030388157
+ - 0.053532764
+ - 0.16783744
+ - 0.0012766641
+ - 0.04305951
+ - 0.102653675
+ - 0.2796644
+ - 0.0010273872
+ - 0.009833026
+ laughterScore: 0
+ - frameNumber: 1044
+ frameDelay: 0
+ Visemes:
+ - 0.03344217
+ - 0.24873844
+ - 0.006074282
+ - 0.033359643
+ - 0.18106538
+ - 0.028068783
+ - 0.005820572
+ - 0.03764172
+ - 0.1176828
+ - 0.00091979554
+ - 0.030459404
+ - 0.07199561
+ - 0.19703412
+ - 0.0007451378
+ - 0.0069520976
+ laughterScore: 0
+ - frameNumber: 1045
+ frameDelay: 0
+ Visemes:
+ - 0.030960385
+ - 0.40244442
+ - 0.006451702
+ - 0.03707806
+ - 0.15869232
+ - 0.033088565
+ - 0.0052649393
+ - 0.026535522
+ - 0.08241678
+ - 0.00067713246
+ - 0.021672685
+ - 0.050441667
+ - 0.13833101
+ - 0.00053857913
+ - 0.0054061958
+ laughterScore: 0
+ - frameNumber: 1046
+ frameDelay: 0
+ Visemes:
+ - 0.031278603
+ - 0.40701523
+ - 0.007182819
+ - 0.057601213
+ - 0.22570063
+ - 0.027115382
+ - 0.012521839
+ - 0.020910686
+ - 0.05779771
+ - 0.00051852735
+ - 0.015489189
+ - 0.035384443
+ - 0.0971005
+ - 0.0004065202
+ - 0.0039767283
+ laughterScore: 0
+ - frameNumber: 1047
+ frameDelay: 0
+ Visemes:
+ - 0.03129887
+ - 0.43658698
+ - 0.006592441
+ - 0.041853625
+ - 0.19887172
+ - 0.020945165
+ - 0.010932414
+ - 0.10392283
+ - 0.040665437
+ - 0.00059792644
+ - 0.011577726
+ - 0.024801707
+ - 0.06814651
+ - 0.0003154378
+ - 0.002891185
+ laughterScore: 0
+ - frameNumber: 1048
+ frameDelay: 0
+ Visemes:
+ - 0.029437058
+ - 0.3395295
+ - 0.005177903
+ - 0.029575689
+ - 0.14283447
+ - 0.0152041735
+ - 0.007764162
+ - 0.32513425
+ - 0.028501676
+ - 0.00046882633
+ - 0.00886801
+ - 0.017377652
+ - 0.04783824
+ - 0.00023087247
+ - 0.0020574539
+ laughterScore: 0
+ - frameNumber: 1049
+ frameDelay: 0
+ Visemes:
+ - 0.027527388
+ - 0.2393789
+ - 0.0040442124
+ - 0.021037003
+ - 0.10289417
+ - 0.010898182
+ - 0.0054713455
+ - 0.51309484
+ - 0.019981675
+ - 0.0003419509
+ - 0.007907616
+ - 0.012177017
+ - 0.03357853
+ - 0.00016880089
+ - 0.0014983173
+ laughterScore: 0
+ - frameNumber: 1050
+ frameDelay: 0
+ Visemes:
+ - 0.027869642
+ - 0.16765162
+ - 0.0030458327
+ - 0.016383916
+ - 0.07897197
+ - 0.008140994
+ - 0.00387265
+ - 0.63757986
+ - 0.014219485
+ - 0.00027706506
+ - 0.007312709
+ - 0.0087509975
+ - 0.024515525
+ - 0.00023948587
+ - 0.0011682217
+ laughterScore: 0
+ - frameNumber: 1051
+ frameDelay: 0
+ Visemes:
+ - 0.028546965
+ - 0.11815252
+ - 0.0028275326
+ - 0.015887085
+ - 0.075115815
+ - 0.007254896
+ - 0.0028635445
+ - 0.6323663
+ - 0.011323531
+ - 0.0010431595
+ - 0.021453325
+ - 0.008445611
+ - 0.06541017
+ - 0.001825326
+ - 0.007484189
+ laughterScore: 0
+ - frameNumber: 1052
+ frameDelay: 0
+ Visemes:
+ - 0.025879398
+ - 0.082756154
+ - 0.0020194955
+ - 0.011764858
+ - 0.053313844
+ - 0.005862061
+ - 0.0021045664
+ - 0.4456439
+ - 0.008519836
+ - 0.0010888011
+ - 0.022168761
+ - 0.18815619
+ - 0.13869739
+ - 0.0058083637
+ - 0.0062163696
+ laughterScore: 0
+ - frameNumber: 1053
+ frameDelay: 0
+ Visemes:
+ - 0.027031831
+ - 0.05805615
+ - 0.0014248692
+ - 0.00865816
+ - 0.037488684
+ - 0.0042603766
+ - 0.0015097958
+ - 0.31233257
+ - 0.0062769423
+ - 0.0011409681
+ - 0.017123371
+ - 0.3507676
+ - 0.16071805
+ - 0.008114256
+ - 0.005096326
+ laughterScore: 0
+ - frameNumber: 1054
+ frameDelay: 0
+ Visemes:
+ - 0.02617629
+ - 0.040895764
+ - 0.0010643206
+ - 0.006225196
+ - 0.02647015
+ - 0.0034220046
+ - 0.0010868915
+ - 0.21874832
+ - 0.0049073687
+ - 0.0009687048
+ - 0.0138002345
+ - 0.4891395
+ - 0.15607181
+ - 0.007228608
+ - 0.003794826
+ laughterScore: 0
+ - frameNumber: 1055
+ frameDelay: 0
+ Visemes:
+ - 0.021195367
+ - 0.028925247
+ - 0.0008063136
+ - 0.0043587144
+ - 0.018798035
+ - 0.2295965
+ - 0.0007665855
+ - 0.15313722
+ - 0.020271568
+ - 0.00070969336
+ - 0.01055224
+ - 0.3597582
+ - 0.14329262
+ - 0.0050792415
+ - 0.0027524647
+ laughterScore: 0
+ - frameNumber: 1056
+ frameDelay: 0
+ Visemes:
+ - 0.016958952
+ - 0.02112634
+ - 0.00064902357
+ - 0.0030553679
+ - 0.013409373
+ - 0.44774315
+ - 0.00054651423
+ - 0.1072063
+ - 0.021199943
+ - 0.0005075536
+ - 0.0075294366
+ - 0.25325477
+ - 0.10129873
+ - 0.0035580164
+ - 0.0019565588
+ laughterScore: 0
+ - frameNumber: 1057
+ frameDelay: 0
+ Visemes:
+ - 0.013321004
+ - 0.018393777
+ - 0.00048414562
+ - 0.0021586781
+ - 0.009719657
+ - 0.60366714
+ - 0.0003904587
+ - 0.075048104
+ - 0.018408386
+ - 0.00035803532
+ - 0.005318798
+ - 0.1777419
+ - 0.071080334
+ - 0.0024915393
+ - 0.0014180728
+ laughterScore: 0
+ - frameNumber: 1058
+ frameDelay: 0
+ Visemes:
+ - 0.012934391
+ - 0.017082531
+ - 0.0003954369
+ - 0.0016315847
+ - 0.0075127394
+ - 0.7111578
+ - 0.0002938756
+ - 0.052541472
+ - 0.014936796
+ - 0.00025406518
+ - 0.0037928615
+ - 0.1247183
+ - 0.049925033
+ - 0.0017449537
+ - 0.0010782162
+ laughterScore: 0
+ - frameNumber: 1059
+ frameDelay: 0
+ Visemes:
+ - 0.016719937
+ - 0.013543136
+ - 0.00036935328
+ - 0.0016753373
+ - 0.0066135693
+ - 0.78518987
+ - 0.00022865798
+ - 0.036797065
+ - 0.011198235
+ - 0.00018478217
+ - 0.002775658
+ - 0.087422356
+ - 0.035127997
+ - 0.0012249897
+ - 0.0009291518
+ laughterScore: 0
+ - frameNumber: 1060
+ frameDelay: 0
+ Visemes:
+ - 0.020957721
+ - 0.012864247
+ - 0.00041783214
+ - 0.0027177753
+ - 0.008449633
+ - 0.8305756
+ - 0.00018822345
+ - 0.025820127
+ - 0.008190892
+ - 0.00013622617
+ - 0.0021021527
+ - 0.06122058
+ - 0.024667667
+ - 0.0008728642
+ - 0.00081849226
+ laughterScore: 0
+ - frameNumber: 1061
+ frameDelay: 0
+ Visemes:
+ - 0.05307485
+ - 0.013304092
+ - 0.00085188553
+ - 0.005312586
+ - 0.012398552
+ - 0.824516
+ - 0.00020455319
+ - 0.018180095
+ - 0.006165231
+ - 0.00017310219
+ - 0.0021641862
+ - 0.043055616
+ - 0.017925074
+ - 0.00078536815
+ - 0.0018888218
+ laughterScore: 0
+ - frameNumber: 1062
+ frameDelay: 0
+ Visemes:
+ - 0.040512417
+ - 0.009569286
+ - 0.00075521215
+ - 0.0042817467
+ - 0.019766662
+ - 0.85927033
+ - 0.0012820588
+ - 0.013716564
+ - 0.004342361
+ - 0.00012369726
+ - 0.0015616982
+ - 0.030161226
+ - 0.012759144
+ - 0.00055313087
+ - 0.0013444313
+ laughterScore: 0
+ - frameNumber: 1063
+ frameDelay: 0
+ Visemes:
+ - 0.033382863
+ - 0.0073526334
+ - 0.0007753367
+ - 0.0047026267
+ - 0.03602679
+ - 0.86356115
+ - 0.0010967121
+ - 0.0097311
+ - 0.003100391
+ - 0.0002047123
+ - 0.002912961
+ - 0.021185366
+ - 0.013447542
+ - 0.00040033332
+ - 0.0021194946
+ laughterScore: 0
+ - frameNumber: 1064
+ frameDelay: 0
+ Visemes:
+ - 0.03096889
+ - 0.005902182
+ - 0.0006160217
+ - 0.004239904
+ - 0.077754095
+ - 0.8226775
+ - 0.0008921389
+ - 0.0068930867
+ - 0.0023186887
+ - 0.00044599385
+ - 0.013493644
+ - 0.015144407
+ - 0.012763755
+ - 0.00029697173
+ - 0.005592744
+ laughterScore: 0
+ - frameNumber: 1065
+ frameDelay: 0
+ Visemes:
+ - 0.028913502
+ - 0.0044922833
+ - 0.00046243746
+ - 0.003041778
+ - 0.059662007
+ - 0.6754173
+ - 0.00083654164
+ - 0.0048372545
+ - 0.0017042095
+ - 0.00044262374
+ - 0.019267134
+ - 0.1615783
+ - 0.03498335
+ - 0.000259097
+ - 0.0041021626
+ laughterScore: 0
+ - frameNumber: 1066
+ frameDelay: 0
+ Visemes:
+ - 0.02710897
+ - 0.0032053986
+ - 0.00033071585
+ - 0.002175303
+ - 0.04218019
+ - 0.47535038
+ - 0.00066847587
+ - 0.003398365
+ - 0.001287351
+ - 0.00056101475
+ - 0.028803963
+ - 0.3247977
+ - 0.08637632
+ - 0.00029762153
+ - 0.003458282
+ laughterScore: 0
+ - frameNumber: 1067
+ frameDelay: 0
+ Visemes:
+ - 0.022474153
+ - 0.002259506
+ - 0.00023384839
+ - 0.001542949
+ - 0.029875344
+ - 0.33284962
+ - 0.0005074329
+ - 0.0023961384
+ - 0.001443893
+ - 0.00069807493
+ - 0.025081713
+ - 0.45971584
+ - 0.117616214
+ - 0.0005206898
+ - 0.0027845553
+ laughterScore: 0
+ - frameNumber: 1068
+ frameDelay: 0
+ Visemes:
+ - 0.02476598
+ - 0.0017534049
+ - 0.00023027044
+ - 0.0012061468
+ - 0.03629093
+ - 0.23369625
+ - 0.0008822485
+ - 0.010119793
+ - 0.014086633
+ - 0.0018682049
+ - 0.037894238
+ - 0.49569598
+ - 0.13756424
+ - 0.0011847554
+ - 0.0027609132
+ laughterScore: 0
+ - frameNumber: 1069
+ frameDelay: 0
+ Visemes:
+ - 0.01940561
+ - 0.0018313467
+ - 0.0001855684
+ - 0.0008943339
+ - 0.030287126
+ - 0.16493323
+ - 0.000630343
+ - 0.0071214954
+ - 0.30005422
+ - 0.0013142742
+ - 0.026803076
+ - 0.3472267
+ - 0.09654357
+ - 0.0008302988
+ - 0.00193879
+ laughterScore: 0
+ - frameNumber: 1070
+ frameDelay: 0
+ Visemes:
+ - 0.014750229
+ - 0.002243171
+ - 0.00018372801
+ - 0.00076065044
+ - 0.043151475
+ - 0.11815174
+ - 0.0005929876
+ - 0.005013846
+ - 0.48260632
+ - 0.00092308404
+ - 0.018958082
+ - 0.2430793
+ - 0.06763702
+ - 0.0005819083
+ - 0.0013664511
+ laughterScore: 0
+ - frameNumber: 1071
+ frameDelay: 0
+ Visemes:
+ - 0.013342479
+ - 0.012836866
+ - 0.0020213388
+ - 0.002014455
+ - 0.14971349
+ - 0.08383971
+ - 0.0013894029
+ - 0.0040617334
+ - 0.4968492
+ - 0.0006742884
+ - 0.014185681
+ - 0.1701725
+ - 0.047519628
+ - 0.00040952
+ - 0.00096968136
+ laughterScore: 0
+ - frameNumber: 1072
+ frameDelay: 0
+ Visemes:
+ - 0.020427829
+ - 0.09609775
+ - 0.002891987
+ - 0.004664641
+ - 0.19815755
+ - 0.060664725
+ - 0.0018941478
+ - 0.003354061
+ - 0.44625667
+ - 0.0005609275
+ - 0.0112043
+ - 0.11914427
+ - 0.03350599
+ - 0.00029513176
+ - 0.0008800548
+ laughterScore: 0
+ - frameNumber: 1073
+ frameDelay: 0
+ Visemes:
+ - 0.018240672
+ - 0.3542924
+ - 0.0022579394
+ - 0.0044478266
+ - 0.14408691
+ - 0.043127418
+ - 0.0013310779
+ - 0.0023540384
+ - 0.31248578
+ - 0.00045794784
+ - 0.007986051
+ - 0.08345013
+ - 0.024598945
+ - 0.0002070908
+ - 0.0006757787
+ laughterScore: 0
+ - frameNumber: 1074
+ frameDelay: 0
+ Visemes:
+ - 0.019851184
+ - 0.34107813
+ - 0.0016398987
+ - 0.003273362
+ - 0.10107563
+ - 0.030339211
+ - 0.0009739508
+ - 0.001651347
+ - 0.2197483
+ - 0.00048385546
+ - 0.0059784953
+ - 0.05936284
+ - 0.21366927
+ - 0.00014705873
+ - 0.00072746765
+ laughterScore: 0
+ - frameNumber: 1075
+ frameDelay: 0
+ Visemes:
+ - 0.018679874
+ - 0.24042326
+ - 0.001204733
+ - 0.0023030268
+ - 0.07081666
+ - 0.021341013
+ - 0.0007015833
+ - 0.0011579723
+ - 0.15390456
+ - 0.00037024068
+ - 0.004283551
+ - 0.04245954
+ - 0.4416076
+ - 0.000103910184
+ - 0.0006425099
+ laughterScore: 0
+ - frameNumber: 1076
+ frameDelay: 0
+ Visemes:
+ - 0.015899904
+ - 0.16877235
+ - 0.0008527129
+ - 0.0016171922
+ - 0.04964805
+ - 0.014992879
+ - 0.00049477175
+ - 0.0008116865
+ - 0.107782096
+ - 0.0002737464
+ - 0.0030273474
+ - 0.030202318
+ - 0.6050721
+ - 0.00007297951
+ - 0.0004798996
+ laughterScore: 0
+ - frameNumber: 1077
+ frameDelay: 0
+ Visemes:
+ - 0.012571749
+ - 0.11816863
+ - 0.000599025
+ - 0.001133162
+ - 0.034811884
+ - 0.010603453
+ - 0.00035324914
+ - 0.00057022227
+ - 0.07545609
+ - 0.00019797722
+ - 0.0021482953
+ - 0.021826684
+ - 0.72115755
+ - 0.000051176023
+ - 0.0003508277
+ laughterScore: 0
+ - frameNumber: 1078
+ frameDelay: 0
+ Visemes:
+ - 0.010066563
+ - 0.0827436
+ - 0.00042760614
+ - 0.00079837244
+ - 0.024431063
+ - 0.0076319585
+ - 0.00025192264
+ - 0.00040455887
+ - 0.05283972
+ - 0.00014288229
+ - 0.0015241612
+ - 0.01616772
+ - 0.8022733
+ - 0.00003595656
+ - 0.00026060484
+ laughterScore: 0
+ - frameNumber: 1079
+ frameDelay: 0
+ Visemes:
+ - 0.008423304
+ - 0.057944916
+ - 0.00030425878
+ - 0.0005657534
+ - 0.017178962
+ - 0.0065761665
+ - 0.00019014456
+ - 0.00029781178
+ - 0.037006892
+ - 0.000103293416
+ - 0.0010898679
+ - 0.012503495
+ - 0.8575913
+ - 0.000025428084
+ - 0.00019837599
+ laughterScore: 0
+ - frameNumber: 1080
+ frameDelay: 0
+ Visemes:
+ - 0.007269717
+ - 0.040583692
+ - 0.00021585113
+ - 0.00040566793
+ - 0.012118719
+ - 0.005566519
+ - 0.00014129668
+ - 0.00021833928
+ - 0.0259187
+ - 0.00007624435
+ - 0.0007951603
+ - 0.009358377
+ - 0.897149
+ - 0.00001895854
+ - 0.00016373761
+ laughterScore: 0
+ - frameNumber: 1081
+ frameDelay: 0
+ Visemes:
+ - 0.0077732764
+ - 0.028431194
+ - 0.00015838146
+ - 0.00030709855
+ - 0.008701767
+ - 0.004664845
+ - 0.00011942298
+ - 0.00017100759
+ - 0.018187568
+ - 0.00007946048
+ - 0.0007031711
+ - 0.008840772
+ - 0.92156374
+ - 0.000027363025
+ - 0.00027098903
+ laughterScore: 0
+ - frameNumber: 1082
+ frameDelay: 0
+ Visemes:
+ - 0.009275752
+ - 0.019914545
+ - 0.00012258363
+ - 0.00026508173
+ - 0.0064738104
+ - 0.0041053924
+ - 0.000113261296
+ - 0.00015565695
+ - 0.012796029
+ - 0.000102363134
+ - 0.00079275534
+ - 0.009479782
+ - 0.93530154
+ - 0.000051676798
+ - 0.0010497959
+ laughterScore: 0
+ - frameNumber: 1083
+ frameDelay: 0
+ Visemes:
+ - 0.011301918
+ - 0.013965583
+ - 0.00015483474
+ - 0.0003363166
+ - 0.0055039166
+ - 0.0033054943
+ - 0.00012698736
+ - 0.00022555093
+ - 0.009132036
+ - 0.00012913563
+ - 0.0011527584
+ - 0.011988177
+ - 0.93937725
+ - 0.00008199811
+ - 0.0032180585
+ laughterScore: 0
+ - frameNumber: 1084
+ frameDelay: 0
+ Visemes:
+ - 0.012440493
+ - 0.009904363
+ - 0.00049509655
+ - 0.00067850866
+ - 0.0065409327
+ - 0.003062043
+ - 0.00018279554
+ - 0.00042220356
+ - 0.006947244
+ - 0.00024908566
+ - 0.0015909241
+ - 0.013237443
+ - 0.93254054
+ - 0.00008749225
+ - 0.011620862
+ laughterScore: 0
+ - frameNumber: 1085
+ frameDelay: 0
+ Visemes:
+ - 0.01618553
+ - 0.00703458
+ - 0.0017166676
+ - 0.00092534546
+ - 0.008573639
+ - 0.0027855267
+ - 0.0002908429
+ - 0.0008938152
+ - 0.005763199
+ - 0.0007594587
+ - 0.002393754
+ - 0.01093857
+ - 0.8504261
+ - 0.00011391762
+ - 0.09119915
+ laughterScore: 0
+ - frameNumber: 1086
+ frameDelay: 0
+ Visemes:
+ - 0.017082622
+ - 0.004961364
+ - 0.0020135792
+ - 0.0007982729
+ - 0.007416142
+ - 0.002173933
+ - 0.00029385457
+ - 0.0011206963
+ - 0.004347604
+ - 0.0013442633
+ - 0.0030405447
+ - 0.008453607
+ - 0.6967687
+ - 0.00011376345
+ - 0.25007108
+ laughterScore: 0
+ - frameNumber: 1087
+ frameDelay: 0
+ Visemes:
+ - 0.013781238
+ - 0.0034783958
+ - 0.0015599107
+ - 0.00059021544
+ - 0.005440212
+ - 0.001569212
+ - 0.00023322612
+ - 0.0009443948
+ - 0.0030655859
+ - 0.0012164625
+ - 0.0023899472
+ - 0.006062581
+ - 0.53038925
+ - 0.00009665343
+ - 0.4291827
+ laughterScore: 0
+ - frameNumber: 1088
+ frameDelay: 0
+ Visemes:
+ - 0.010912314
+ - 0.0024383962
+ - 0.0011348077
+ - 0.00044687232
+ - 0.0039695483
+ - 0.0011252942
+ - 0.00019930334
+ - 0.00088788336
+ - 0.0021588758
+ - 0.0010739155
+ - 0.0019221235
+ - 0.0043820916
+ - 0.38037148
+ - 0.00011774053
+ - 0.5888593
+ laughterScore: 0
+ - frameNumber: 1089
+ frameDelay: 0
+ Visemes:
+ - 0.008759682
+ - 0.001710073
+ - 0.0008057998
+ - 0.0003618008
+ - 0.002846636
+ - 0.0007950523
+ - 0.00016043475
+ - 0.00079829653
+ - 0.0015263136
+ - 0.0009130607
+ - 0.001652882
+ - 0.003220515
+ - 0.268533
+ - 0.00015660345
+ - 0.70775986
+ laughterScore: 0
+ - frameNumber: 1090
+ frameDelay: 0
+ Visemes:
+ - 0.0077003106
+ - 0.0012034005
+ - 0.0005761104
+ - 0.00030442068
+ - 0.0020920103
+ - 0.0005683265
+ - 0.00013132275
+ - 0.00080170296
+ - 0.0010880874
+ - 0.0007940233
+ - 0.0014592647
+ - 0.002512102
+ - 0.18977964
+ - 0.00020976434
+ - 0.7907795
+ laughterScore: 0
+ - frameNumber: 1091
+ frameDelay: 0
+ Visemes:
+ - 0.0076332586
+ - 0.000850973
+ - 0.0004393519
+ - 0.00034119288
+ - 0.0016520369
+ - 0.0004353086
+ - 0.00028492653
+ - 0.020260816
+ - 0.00081866665
+ - 0.00090049196
+ - 0.0025962354
+ - 0.002088543
+ - 0.1389903
+ - 0.00021714988
+ - 0.8224907
+ laughterScore: 0
+ - frameNumber: 1092
+ frameDelay: 0
+ Visemes:
+ - 0.008997755
+ - 0.00062284985
+ - 0.00041872577
+ - 0.0004663862
+ - 0.0023282296
+ - 0.00033273385
+ - 0.00021480737
+ - 0.29201773
+ - 0.00084124814
+ - 0.0006700427
+ - 0.0031373305
+ - 0.0015153809
+ - 0.098771654
+ - 0.00015717171
+ - 0.589508
+ laughterScore: 0
+ - frameNumber: 1093
+ frameDelay: 0
+ Visemes:
+ - 0.010690993
+ - 0.00055969355
+ - 0.00036596047
+ - 0.00073320797
+ - 0.0026068988
+ - 0.00040429956
+ - 0.00020825281
+ - 0.49496534
+ - 0.00078143453
+ - 0.0004919987
+ - 0.0023780197
+ - 0.0010765532
+ - 0.069672294
+ - 0.00011702975
+ - 0.41494805
+ laughterScore: 0
+ - frameNumber: 1094
+ frameDelay: 0
+ Visemes:
+ - 0.011537031
+ - 0.00042996538
+ - 0.0003087082
+ - 0.0011702796
+ - 0.0027884194
+ - 0.00043271098
+ - 0.00032496452
+ - 0.6389913
+ - 0.00061803975
+ - 0.00036555872
+ - 0.0017144134
+ - 0.00076716486
+ - 0.04924228
+ - 0.00008776431
+ - 0.29122147
+ laughterScore: 0
+ - frameNumber: 1095
+ frameDelay: 0
+ Visemes:
+ - 0.019328926
+ - 0.00062919233
+ - 0.00027399982
+ - 0.006574189
+ - 0.026523182
+ - 0.0013992214
+ - 0.0012654107
+ - 0.7020941
+ - 0.0006717221
+ - 0.0002631281
+ - 0.0012556798
+ - 0.0005605391
+ - 0.03511435
+ - 0.00007013159
+ - 0.2039763
+ laughterScore: 0
+ - frameNumber: 1096
+ frameDelay: 0
+ Visemes:
+ - 0.027519017
+ - 0.0005897128
+ - 0.00023226926
+ - 0.02049381
+ - 0.24370511
+ - 0.0018670519
+ - 0.0067280224
+ - 0.5269218
+ - 0.0021934565
+ - 0.0001926184
+ - 0.0011848457
+ - 0.00043795595
+ - 0.024908794
+ - 0.00018716753
+ - 0.14283836
+ laughterScore: 0
+ - frameNumber: 1097
+ frameDelay: 0
+ Visemes:
+ - 0.028243657
+ - 0.0009539197
+ - 0.00044328877
+ - 0.06585243
+ - 0.33139518
+ - 0.0020736093
+ - 0.005476476
+ - 0.38124898
+ - 0.006744692
+ - 0.00045599404
+ - 0.040751204
+ - 0.002933824
+ - 0.03223399
+ - 0.00056953507
+ - 0.10062318
+ laughterScore: 0
+ - frameNumber: 1098
+ frameDelay: 0
+ Visemes:
+ - 0.025973065
+ - 0.0009501087
+ - 0.00042458563
+ - 0.055038493
+ - 0.3528152
+ - 0.0019621297
+ - 0.0052260403
+ - 0.26793218
+ - 0.005201125
+ - 0.0004152513
+ - 0.037570875
+ - 0.06897484
+ - 0.105539925
+ - 0.0004989874
+ - 0.07147718
+ laughterScore: 0
+ - frameNumber: 1099
+ frameDelay: 0
+ Visemes:
+ - 0.025533587
+ - 0.0008497902
+ - 0.0004175168
+ - 0.039319362
+ - 0.2521536
+ - 0.0017420353
+ - 0.004171427
+ - 0.1875921
+ - 0.0043763113
+ - 0.00043915902
+ - 0.036095165
+ - 0.23506515
+ - 0.16095784
+ - 0.0004478948
+ - 0.050839018
+ laughterScore: 0
+ - frameNumber: 1100
+ frameDelay: 0
+ Visemes:
+ - 0.025835132
+ - 0.00085300265
+ - 0.00040175
+ - 0.027531363
+ - 0.18064183
+ - 0.14967601
+ - 0.0029667919
+ - 0.1313451
+ - 0.10645365
+ - 0.00040396635
+ - 0.040431492
+ - 0.1663085
+ - 0.13112223
+ - 0.0003320441
+ - 0.03569713
+ laughterScore: 0
+ - frameNumber: 1101
+ frameDelay: 0
+ Visemes:
+ - 0.027079701
+ - 0.0010333152
+ - 0.00038228347
+ - 0.019311547
+ - 0.1320508
+ - 0.24127477
+ - 0.002140259
+ - 0.091988996
+ - 0.21937022
+ - 0.00031363548
+ - 0.029707273
+ - 0.11714943
+ - 0.09291992
+ - 0.0002384293
+ - 0.025039416
+ laughterScore: 0
+ - frameNumber: 1102
+ frameDelay: 0
+ Visemes:
+ - 0.028546168
+ - 0.003407456
+ - 0.00050480524
+ - 0.0140176695
+ - 0.1142836
+ - 0.27211267
+ - 0.0047884965
+ - 0.06499087
+ - 0.30869752
+ - 0.00030070634
+ - 0.021643814
+ - 0.08287773
+ - 0.06602201
+ - 0.00017705122
+ - 0.01762946
+ laughterScore: 0
+ - frameNumber: 1103
+ frameDelay: 0
+ Visemes:
+ - 0.027232502
+ - 0.005151936
+ - 0.00058962917
+ - 0.010033972
+ - 0.0879462
+ - 0.43759155
+ - 0.003986184
+ - 0.045651354
+ - 0.24825881
+ - 0.00026336577
+ - 0.01566784
+ - 0.05816842
+ - 0.04690093
+ - 0.00013800335
+ - 0.012419308
+ laughterScore: 0
+ - frameNumber: 1104
+ frameDelay: 0
+ Visemes:
+ - 0.02564773
+ - 0.0058055506
+ - 0.0035166426
+ - 0.009661616
+ - 0.115239576
+ - 0.5335189
+ - 0.004009799
+ - 0.033080854
+ - 0.17509714
+ - 0.00019934235
+ - 0.01121393
+ - 0.040759105
+ - 0.033418354
+ - 0.00010199196
+ - 0.008729413
+ laughterScore: 0
+ - frameNumber: 1105
+ frameDelay: 0
+ Visemes:
+ - 0.026919171
+ - 0.008986574
+ - 0.0063844165
+ - 0.013135863
+ - 0.1132015
+ - 0.60068905
+ - 0.0029565315
+ - 0.023939842
+ - 0.12287051
+ - 0.00033969787
+ - 0.011146404
+ - 0.028710714
+ - 0.0335441
+ - 0.00010353982
+ - 0.0070720627
+ laughterScore: 0
+ - frameNumber: 1106
+ frameDelay: 0
+ Visemes:
+ - 0.028599074
+ - 0.009294916
+ - 0.004837838
+ - 0.011061834
+ - 0.10517057
+ - 0.5985261
+ - 0.0021914172
+ - 0.017040474
+ - 0.08681055
+ - 0.0015337248
+ - 0.07469128
+ - 0.022078272
+ - 0.029596392
+ - 0.00037135035
+ - 0.008196205
+ laughterScore: 0
+ - frameNumber: 1107
+ frameDelay: 0
+ Visemes:
+ - 0.02591911
+ - 0.0066318214
+ - 0.0034217804
+ - 0.0082070585
+ - 0.07662235
+ - 0.4192547
+ - 0.0017433604
+ - 0.011977924
+ - 0.066865295
+ - 0.001593394
+ - 0.26057363
+ - 0.029267637
+ - 0.06933365
+ - 0.00032112567
+ - 0.018267186
+ laughterScore: 0
+ - frameNumber: 1108
+ frameDelay: 0
+ Visemes:
+ - 0.026045704
+ - 0.0068619493
+ - 0.0024373422
+ - 0.0058903154
+ - 0.05623138
+ - 0.3132853
+ - 0.0012367951
+ - 0.008427283
+ - 0.30369928
+ - 0.0011341461
+ - 0.18868692
+ - 0.022332376
+ - 0.05051716
+ - 0.0002301434
+ - 0.012983915
+ laughterScore: 0
+ - frameNumber: 1109
+ frameDelay: 0
+ Visemes:
+ - 0.023792315
+ - 0.0063725626
+ - 0.0017803938
+ - 0.004680195
+ - 0.05159853
+ - 0.22866069
+ - 0.0008989299
+ - 0.0059281443
+ - 0.48154363
+ - 0.0007979848
+ - 0.13318563
+ - 0.01582455
+ - 0.035654243
+ - 0.00016282275
+ - 0.009119372
+ laughterScore: 0
+ - frameNumber: 1110
+ frameDelay: 0
+ Visemes:
+ - 0.021115763
+ - 0.0070962096
+ - 0.0016269698
+ - 0.007499406
+ - 0.10906436
+ - 0.16594872
+ - 0.0040249284
+ - 0.0046987645
+ - 0.5405249
+ - 0.0005719985
+ - 0.09494219
+ - 0.011147459
+ - 0.025213216
+ - 0.00011729304
+ - 0.006407839
+ laughterScore: 0
+ - frameNumber: 1111
+ frameDelay: 0
+ Visemes:
+ - 0.021417385
+ - 0.010662957
+ - 0.0015100085
+ - 0.005348906
+ - 0.14402154
+ - 0.11903562
+ - 0.14513098
+ - 0.011387794
+ - 0.4431754
+ - 0.00048834115
+ - 0.06724166
+ - 0.0078095556
+ - 0.018163426
+ - 0.00008842558
+ - 0.0045180446
+ laughterScore: 0
+ - frameNumber: 1112
+ frameDelay: 0
+ Visemes:
+ - 0.020391323
+ - 0.0075138696
+ - 0.0011311582
+ - 0.004097576
+ - 0.13763788
+ - 0.08367099
+ - 0.3120762
+ - 0.011787849
+ - 0.3105729
+ - 0.0036600265
+ - 0.047213066
+ - 0.005481669
+ - 0.05095352
+ - 0.000070152106
+ - 0.00374186
+ laughterScore: 0
+ - frameNumber: 1113
+ frameDelay: 0
+ Visemes:
+ - 0.01602154
+ - 0.0053110835
+ - 0.00085421785
+ - 0.0029879427
+ - 0.09821011
+ - 0.058705088
+ - 0.48295444
+ - 0.008324796
+ - 0.21754737
+ - 0.022354426
+ - 0.036453567
+ - 0.003918894
+ - 0.04312988
+ - 0.00009792691
+ - 0.0031287638
+ laughterScore: 0
+ - frameNumber: 1114
+ frameDelay: 0
+ Visemes:
+ - 0.014692923
+ - 0.0037802968
+ - 0.00063043856
+ - 0.0022025183
+ - 0.068967566
+ - 0.04117904
+ - 0.6083313
+ - 0.005885222
+ - 0.15254456
+ - 0.028860722
+ - 0.03277917
+ - 0.0053464817
+ - 0.032094147
+ - 0.00016413667
+ - 0.0025414764
+ laughterScore: 0
+ - frameNumber: 1115
+ frameDelay: 0
+ Visemes:
+ - 0.022307403
+ - 0.002706374
+ - 0.00045030974
+ - 0.0016191354
+ - 0.048519284
+ - 0.029304426
+ - 0.48527923
+ - 0.004138586
+ - 0.106874
+ - 0.051075347
+ - 0.1341006
+ - 0.0860242
+ - 0.023335528
+ - 0.0018045633
+ - 0.002461039
+ laughterScore: 0
+ - frameNumber: 1116
+ frameDelay: 0
+ Visemes:
+ - 0.0400042
+ - 0.0019863457
+ - 0.00032840605
+ - 0.0012062242
+ - 0.03456996
+ - 0.02099928
+ - 0.35683894
+ - 0.0029650838
+ - 0.07529045
+ - 0.040093247
+ - 0.22909458
+ - 0.16746241
+ - 0.02244026
+ - 0.004309883
+ - 0.0024107187
+ laughterScore: 0
+ - frameNumber: 1117
+ frameDelay: 0
+ Visemes:
+ - 0.052647993
+ - 0.0046561724
+ - 0.0009571976
+ - 0.0011525926
+ - 0.025102515
+ - 0.015728429
+ - 0.2536407
+ - 0.0029578735
+ - 0.05391841
+ - 0.029708512
+ - 0.30305827
+ - 0.22265944
+ - 0.019027324
+ - 0.012371965
+ - 0.00241266
+ laughterScore: 0
+ - frameNumber: 1118
+ frameDelay: 0
+ Visemes:
+ - 0.057500497
+ - 0.004226851
+ - 0.0013723124
+ - 0.0010210843
+ - 0.018479574
+ - 0.021898964
+ - 0.17967412
+ - 0.014330215
+ - 0.0403922
+ - 0.021274721
+ - 0.33981234
+ - 0.26978588
+ - 0.015675236
+ - 0.012596571
+ - 0.0019594508
+ laughterScore: 0
+ - frameNumber: 1119
+ frameDelay: 0
+ Visemes:
+ - 0.057094328
+ - 0.009748004
+ - 0.0011026206
+ - 0.000924123
+ - 0.013847596
+ - 0.18351424
+ - 0.1276171
+ - 0.01333559
+ - 0.11058445
+ - 0.015028575
+ - 0.25108194
+ - 0.19212472
+ - 0.012145603
+ - 0.010423654
+ - 0.0014274907
+ laughterScore: 0
+ - frameNumber: 1120
+ frameDelay: 0
+ Visemes:
+ - 0.044871658
+ - 0.011585902
+ - 0.0009466258
+ - 0.00071010273
+ - 0.012050429
+ - 0.30228987
+ - 0.08994876
+ - 0.009928764
+ - 0.18800518
+ - 0.010565709
+ - 0.17712636
+ - 0.1345898
+ - 0.0087207975
+ - 0.007566626
+ - 0.0010934744
+ laughterScore: 0
+ - frameNumber: 1121
+ frameDelay: 0
+ Visemes:
+ - 0.04205019
+ - 0.010799387
+ - 0.0010670016
+ - 0.0018471733
+ - 0.031315085
+ - 0.40498042
+ - 0.063668236
+ - 0.008284138
+ - 0.19294757
+ - 0.007492982
+ - 0.12815276
+ - 0.09426563
+ - 0.0067439973
+ - 0.0054670516
+ - 0.00091844687
+ laughterScore: 0
+ - frameNumber: 1122
+ frameDelay: 0
+ Visemes:
+ - 0.040149678
+ - 0.009207715
+ - 0.001206771
+ - 0.00155502
+ - 0.111596
+ - 0.37575483
+ - 0.08714673
+ - 0.06673215
+ - 0.13573243
+ - 0.0052635465
+ - 0.09028748
+ - 0.06600456
+ - 0.004786559
+ - 0.0038453573
+ - 0.0007311847
+ laughterScore: 0
+ - frameNumber: 1123
+ frameDelay: 0
+ Visemes:
+ - 0.04029078
+ - 0.007149008
+ - 0.0018440764
+ - 0.0014683388
+ - 0.09844518
+ - 0.27163285
+ - 0.14378473
+ - 0.21890044
+ - 0.09520868
+ - 0.0037247757
+ - 0.06399586
+ - 0.04634643
+ - 0.003632725
+ - 0.0027209292
+ - 0.0008551723
+ laughterScore: 0
+ - frameNumber: 1124
+ frameDelay: 0
+ Visemes:
+ - 0.04589954
+ - 0.0056635947
+ - 0.0026944703
+ - 0.0025092121
+ - 0.104190364
+ - 0.19353196
+ - 0.16983062
+ - 0.3167004
+ - 0.06700939
+ - 0.0028817605
+ - 0.04618647
+ - 0.032704312
+ - 0.0055547883
+ - 0.0019880172
+ - 0.0026551199
+ laughterScore: 0
+ - frameNumber: 1125
+ frameDelay: 0
+ Visemes:
+ - 0.04706925
+ - 0.0052216365
+ - 0.0028284844
+ - 0.0041659707
+ - 0.08608457
+ - 0.14712857
+ - 0.22553883
+ - 0.28354388
+ - 0.048241243
+ - 0.0066052135
+ - 0.04239491
+ - 0.023617098
+ - 0.06693473
+ - 0.0014994283
+ - 0.009126258
+ laughterScore: 0
+ - frameNumber: 1126
+ frameDelay: 0
+ Visemes:
+ - 0.04621528
+ - 0.0049731266
+ - 0.0022332114
+ - 0.0054032835
+ - 0.06326787
+ - 0.10498506
+ - 0.21174924
+ - 0.19996467
+ - 0.036264066
+ - 0.012797736
+ - 0.1442894
+ - 0.035381667
+ - 0.11028436
+ - 0.00147189
+ - 0.020719169
+ laughterScore: 0
+ - frameNumber: 1127
+ frameDelay: 0
+ Visemes:
+ - 0.039130967
+ - 0.0035171057
+ - 0.0015879582
+ - 0.0046570394
+ - 0.044905886
+ - 0.07400393
+ - 0.1507302
+ - 0.14014602
+ - 0.025937524
+ - 0.024709404
+ - 0.25321826
+ - 0.028501911
+ - 0.16681433
+ - 0.0018131861
+ - 0.040326294
+ laughterScore: 0
+ - frameNumber: 1128
+ frameDelay: 0
+ Visemes:
+ - 0.03252101
+ - 0.0068859425
+ - 0.0017237728
+ - 0.0044068443
+ - 0.05261191
+ - 0.081591964
+ - 0.106603734
+ - 0.0982407
+ - 0.09915213
+ - 0.024125082
+ - 0.2668301
+ - 0.028649852
+ - 0.16235444
+ - 0.001883917
+ - 0.03241861
+ laughterScore: 0
+ - frameNumber: 1129
+ frameDelay: 0
+ Visemes:
+ - 0.031198416
+ - 0.015215383
+ - 0.0013451799
+ - 0.003727124
+ - 0.043671053
+ - 0.11670226
+ - 0.07482585
+ - 0.068918616
+ - 0.27375025
+ - 0.017043844
+ - 0.19121833
+ - 0.02103898
+ - 0.1167714
+ - 0.0013761516
+ - 0.023197172
+ laughterScore: 0
+ - frameNumber: 1130
+ frameDelay: 0
+ Visemes:
+ - 0.029468734
+ - 0.029732548
+ - 0.0017703187
+ - 0.0107635
+ - 0.05137703
+ - 0.14171082
+ - 0.053420164
+ - 0.048801884
+ - 0.36466506
+ - 0.013070801
+ - 0.13779192
+ - 0.015397903
+ - 0.083290264
+ - 0.00112257
+ - 0.017616468
+ laughterScore: 0
+ - frameNumber: 1131
+ frameDelay: 0
+ Visemes:
+ - 0.02684253
+ - 0.0802155
+ - 0.0072798254
+ - 0.015882166
+ - 0.04642287
+ - 0.11670993
+ - 0.03817108
+ - 0.03471198
+ - 0.37696713
+ - 0.0504478
+ - 0.101096526
+ - 0.011224513
+ - 0.0595723
+ - 0.0012463431
+ - 0.033209495
+ laughterScore: 0
+ - frameNumber: 1132
+ frameDelay: 0
+ Visemes:
+ - 0.025544545
+ - 0.07300247
+ - 0.0077859266
+ - 0.011580419
+ - 0.032739624
+ - 0.08350418
+ - 0.026756117
+ - 0.024321685
+ - 0.2927878
+ - 0.057507243
+ - 0.07589668
+ - 0.008613984
+ - 0.043124035
+ - 0.0017467882
+ - 0.23508851
+ laughterScore: 0
+ - frameNumber: 1133
+ frameDelay: 0
+ Visemes:
+ - 0.026151594
+ - 0.052567918
+ - 0.005862569
+ - 0.00916197
+ - 0.023355737
+ - 0.06052949
+ - 0.01880224
+ - 0.01706702
+ - 0.26706326
+ - 0.044965163
+ - 0.1745821
+ - 0.012501257
+ - 0.10270819
+ - 0.0031212987
+ - 0.1815602
+ laughterScore: 0
+ - frameNumber: 1134
+ frameDelay: 0
+ Visemes:
+ - 0.021732977
+ - 0.03682168
+ - 0.0041315015
+ - 0.008203596
+ - 0.016826399
+ - 0.04243891
+ - 0.013195611
+ - 0.011993491
+ - 0.19071135
+ - 0.034814276
+ - 0.24313578
+ - 0.012578003
+ - 0.2298341
+ - 0.0032407183
+ - 0.13034162
+ laughterScore: 0
+ - frameNumber: 1135
+ frameDelay: 0
+ Visemes:
+ - 0.020990834
+ - 0.025845982
+ - 0.0032550865
+ - 0.049058203
+ - 0.026491433
+ - 0.029773325
+ - 0.009663592
+ - 0.008885681
+ - 0.13799609
+ - 0.027174963
+ - 0.19075847
+ - 0.009630913
+ - 0.36429217
+ - 0.0027763231
+ - 0.093406916
+ laughterScore: 0
+ - frameNumber: 1136
+ frameDelay: 0
+ Visemes:
+ - 0.023369242
+ - 0.01872382
+ - 0.012417125
+ - 0.24928318
+ - 0.055089004
+ - 0.021159949
+ - 0.0104702655
+ - 0.012204157
+ - 0.09966329
+ - 0.02010664
+ - 0.14378248
+ - 0.007252051
+ - 0.2589965
+ - 0.0019865045
+ - 0.06549581
+ laughterScore: 0
+ - frameNumber: 1137
+ frameDelay: 0
+ Visemes:
+ - 0.030733775
+ - 0.01866344
+ - 0.02087602
+ - 0.27941933
+ - 0.17239821
+ - 0.015551424
+ - 0.010752814
+ - 0.021362038
+ - 0.0708272
+ - 0.014396952
+ - 0.110642806
+ - 0.0052240696
+ - 0.18183179
+ - 0.0014118229
+ - 0.045908283
+ laughterScore: 0
+ - frameNumber: 1138
+ frameDelay: 0
+ Visemes:
+ - 0.047233414
+ - 0.04990811
+ - 0.019591903
+ - 0.2684037
+ - 0.24670732
+ - 0.012153383
+ - 0.010582922
+ - 0.024787191
+ - 0.05059407
+ - 0.010379963
+ - 0.09458406
+ - 0.0038529192
+ - 0.12783758
+ - 0.001020839
+ - 0.032362584
+ laughterScore: 0
+ - frameNumber: 1139
+ frameDelay: 0
+ Visemes:
+ - 0.06228929
+ - 0.06223717
+ - 0.020027673
+ - 0.29526806
+ - 0.27693105
+ - 0.009638681
+ - 0.010778674
+ - 0.028852258
+ - 0.03651451
+ - 0.0073594223
+ - 0.073694006
+ - 0.0027951424
+ - 0.090037726
+ - 0.0007516549
+ - 0.022824656
+ laughterScore: 0
+ - frameNumber: 1140
+ frameDelay: 0
+ Visemes:
+ - 0.069939606
+ - 0.08119953
+ - 0.024244431
+ - 0.33456892
+ - 0.2600181
+ - 0.008185923
+ - 0.010878343
+ - 0.030229567
+ - 0.033180468
+ - 0.005662293
+ - 0.056584552
+ - 0.0021380733
+ - 0.06551521
+ - 0.00055863906
+ - 0.017096309
+ laughterScore: 0
+ - frameNumber: 1141
+ frameDelay: 0
+ Visemes:
+ - 0.06964057
+ - 0.15705976
+ - 0.032460492
+ - 0.23690604
+ - 0.18278037
+ - 0.007164458
+ - 0.0076515013
+ - 0.021698393
+ - 0.09710926
+ - 0.00670928
+ - 0.04142808
+ - 0.0018411487
+ - 0.04792372
+ - 0.012242789
+ - 0.07738412
+ laughterScore: 0
+ - frameNumber: 1142
+ frameDelay: 0
+ Visemes:
+ - 0.06178087
+ - 0.1930295
+ - 0.031917118
+ - 0.16638435
+ - 0.1281911
+ - 0.0069277575
+ - 0.005369698
+ - 0.015271598
+ - 0.13822767
+ - 0.0050766068
+ - 0.049019404
+ - 0.0020310706
+ - 0.06301793
+ - 0.04637005
+ - 0.087385245
+ laughterScore: 0
+ - frameNumber: 1143
+ frameDelay: 0
+ Visemes:
+ - 0.058291335
+ - 0.14052464
+ - 0.02547101
+ - 0.1167927
+ - 0.08997122
+ - 0.005384442
+ - 0.0037890163
+ - 0.010712756
+ - 0.13396153
+ - 0.0041881506
+ - 0.06931212
+ - 0.004044284
+ - 0.05599007
+ - 0.1572875
+ - 0.124279216
+ laughterScore: 0
+ - frameNumber: 1144
+ frameDelay: 0
+ Visemes:
+ - 0.044270232
+ - 0.09907834
+ - 0.017919112
+ - 0.08185237
+ - 0.063313134
+ - 0.003806648
+ - 0.0026566668
+ - 0.0075130593
+ - 0.1273003
+ - 0.0035813674
+ - 0.05239021
+ - 0.002997437
+ - 0.03941523
+ - 0.34567758
+ - 0.10822827
+ laughterScore: 0
+ - frameNumber: 1145
+ frameDelay: 0
+ Visemes:
+ - 0.0321545
+ - 0.06936349
+ - 0.012551311
+ - 0.057317965
+ - 0.04439026
+ - 0.0026724886
+ - 0.001864634
+ - 0.005265176
+ - 0.093860075
+ - 0.006012352
+ - 0.037025794
+ - 0.002142553
+ - 0.027651252
+ - 0.5308196
+ - 0.07690858
+ laughterScore: 0
+ - frameNumber: 1146
+ frameDelay: 0
+ Visemes:
+ - 0.022612931
+ - 0.048554827
+ - 0.008786406
+ - 0.040125113
+ - 0.031096132
+ - 0.0018720956
+ - 0.0013093849
+ - 0.0036860514
+ - 0.06605219
+ - 0.004708688
+ - 0.025930112
+ - 0.0015352576
+ - 0.01944891
+ - 0.6703862
+ - 0.053895712
+ laughterScore: 0
+ - frameNumber: 1147
+ frameDelay: 0
+ Visemes:
+ - 0.015860796
+ - 0.03398854
+ - 0.0061506797
+ - 0.028089304
+ - 0.021804553
+ - 0.0013125007
+ - 0.00091887946
+ - 0.0025808178
+ - 0.046275407
+ - 0.003466016
+ - 0.018152822
+ - 0.001114884
+ - 0.013701378
+ - 0.7688503
+ - 0.037733074
+ laughterScore: 0
+ - frameNumber: 1148
+ frameDelay: 0
+ Visemes:
+ - 0.011196271
+ - 0.023792168
+ - 0.004310458
+ - 0.019745165
+ - 0.015320769
+ - 0.00092279026
+ - 0.0006610092
+ - 0.0018477603
+ - 0.03242399
+ - 0.0040457947
+ - 0.012716665
+ - 0.00087347685
+ - 0.009735099
+ - 0.8359931
+ - 0.026415436
+ laughterScore: 0
+ - frameNumber: 1149
+ frameDelay: 0
+ Visemes:
+ - 0.007930346
+ - 0.016654572
+ - 0.0030215515
+ - 0.014086075
+ - 0.011015256
+ - 0.00064793235
+ - 0.00046724748
+ - 0.0068564834
+ - 0.02270562
+ - 0.0036666035
+ - 0.008914763
+ - 0.0006930544
+ - 0.0069389977
+ - 0.87790823
+ - 0.018493257
+ laughterScore: 0
+ - frameNumber: 1150
+ frameDelay: 0
+ Visemes:
+ - 0.0069191484
+ - 0.011659434
+ - 0.002169095
+ - 0.010831651
+ - 0.009898937
+ - 0.00047417797
+ - 0.00038019617
+ - 0.26164225
+ - 0.015902754
+ - 0.002640436
+ - 0.0062815268
+ - 0.0005587124
+ - 0.0050235293
+ - 0.6526715
+ - 0.012946613
+ laughterScore: 0
+ - frameNumber: 1151
+ frameDelay: 0
+ Visemes:
+ - 0.0057573146
+ - 0.008163405
+ - 0.0015446114
+ - 0.008203158
+ - 0.00811621
+ - 0.0003396833
+ - 0.000292069
+ - 0.4793768
+ - 0.011136582
+ - 0.0018551715
+ - 0.0044088555
+ - 0.00041663024
+ - 0.0035487816
+ - 0.4577771
+ - 0.009063584
+ laughterScore: 0
+ - frameNumber: 1152
+ frameDelay: 0
+ Visemes:
+ - 0.012801075
+ - 0.0072486745
+ - 0.001135455
+ - 0.009136816
+ - 0.014891736
+ - 0.00073195016
+ - 0.0002797857
+ - 0.5234332
+ - 0.009157142
+ - 0.001377372
+ - 0.020285312
+ - 0.0021550972
+ - 0.06986696
+ - 0.3207517
+ - 0.006747724
+ laughterScore: 0
+ - frameNumber: 1153
+ frameDelay: 0
+ Visemes:
+ - 0.027484544
+ - 0.0073015
+ - 0.00087052595
+ - 0.008975687
+ - 0.017262833
+ - 0.0008134902
+ - 0.0002386196
+ - 0.38223794
+ - 0.008280735
+ - 0.004146951
+ - 0.15949099
+ - 0.031897083
+ - 0.110205024
+ - 0.23436013
+ - 0.0064339386
+ laughterScore: 0
+ - frameNumber: 1154
+ frameDelay: 0
+ Visemes:
+ - 0.039148457
+ - 0.005496179
+ - 0.0008470678
+ - 0.011979938
+ - 0.02737441
+ - 0.0015725542
+ - 0.00026615857
+ - 0.27818784
+ - 0.006708291
+ - 0.004424045
+ - 0.27615356
+ - 0.04341896
+ - 0.11537788
+ - 0.18267979
+ - 0.006364882
+ laughterScore: 0
+ - frameNumber: 1155
+ frameDelay: 0
+ Visemes:
+ - 0.03852335
+ - 0.0049654488
+ - 0.0018781999
+ - 0.010298571
+ - 0.030306954
+ - 0.0015031458
+ - 0.00022263163
+ - 0.19585423
+ - 0.0058274805
+ - 0.0035966693
+ - 0.40698436
+ - 0.036097422
+ - 0.10141398
+ - 0.15698595
+ - 0.005541609
+ laughterScore: 0
+ - frameNumber: 1156
+ frameDelay: 0
+ Visemes:
+ - 0.050302982
+ - 0.0103433635
+ - 0.0052640717
+ - 0.007847658
+ - 0.03091313
+ - 0.0017314949
+ - 0.00028550415
+ - 0.13817605
+ - 0.008201618
+ - 0.0034916329
+ - 0.4283201
+ - 0.03492312
+ - 0.0843827
+ - 0.19044611
+ - 0.0053704297
+ laughterScore: 0
+ - frameNumber: 1157
+ frameDelay: 0
+ Visemes:
+ - 0.055733368
+ - 0.008596012
+ - 0.0044716354
+ - 0.0057103364
+ - 0.024382535
+ - 0.0014983127
+ - 0.00023040737
+ - 0.09681793
+ - 0.014340239
+ - 0.0038053133
+ - 0.3718637
+ - 0.043104563
+ - 0.0755255
+ - 0.28638715
+ - 0.007532949
+ laughterScore: 0
+ - frameNumber: 1158
+ frameDelay: 0
+ Visemes:
+ - 0.049073216
+ - 0.006546648
+ - 0.0034162565
+ - 0.0040732627
+ - 0.017956212
+ - 0.0012578737
+ - 0.00017018858
+ - 0.06780535
+ - 0.031787567
+ - 0.00323339
+ - 0.2701499
+ - 0.043722793
+ - 0.060143206
+ - 0.43224475
+ - 0.008419357
+ laughterScore: 0
+ - frameNumber: 1159
+ frameDelay: 0
+ Visemes:
+ - 0.0470718
+ - 0.010349691
+ - 0.015168292
+ - 0.0031567006
+ - 0.0141177615
+ - 0.0022882656
+ - 0.000166935
+ - 0.047586262
+ - 0.07131555
+ - 0.0055837194
+ - 0.22831541
+ - 0.03193908
+ - 0.04462957
+ - 0.46727878
+ - 0.011032213
+ laughterScore: 0
+ - frameNumber: 1160
+ frameDelay: 0
+ Visemes:
+ - 0.034771103
+ - 0.01053179
+ - 0.29940048
+ - 0.0032821011
+ - 0.009996655
+ - 0.0016558946
+ - 0.00012255735
+ - 0.033368833
+ - 0.051198844
+ - 0.0044536437
+ - 0.16177328
+ - 0.022363175
+ - 0.031443648
+ - 0.32773724
+ - 0.007900767
+ laughterScore: 0
+ - frameNumber: 1161
+ frameDelay: 0
+ Visemes:
+ - 0.026494324
+ - 0.010928841
+ - 0.49926835
+ - 0.0030281341
+ - 0.007168792
+ - 0.0013651117
+ - 0.00009682936
+ - 0.023449961
+ - 0.03647985
+ - 0.0043413537
+ - 0.113814175
+ - 0.015657123
+ - 0.022071518
+ - 0.22973421
+ - 0.0061014304
+ laughterScore: 0
+ - frameNumber: 1162
+ frameDelay: 0
+ Visemes:
+ - 0.020495974
+ - 0.008069216
+ - 0.6347716
+ - 0.0026824805
+ - 0.005063636
+ - 0.001231593
+ - 0.00007196427
+ - 0.016668262
+ - 0.025743583
+ - 0.0133173205
+ - 0.080116406
+ - 0.010969788
+ - 0.015483016
+ - 0.16085434
+ - 0.004460789
+ laughterScore: 0
+ - frameNumber: 1163
+ frameDelay: 0
+ Visemes:
+ - 0.015845902
+ - 0.0057595335
+ - 0.62968814
+ - 0.0020413955
+ - 0.0035612825
+ - 0.0010316272
+ - 0.00005183433
+ - 0.011686291
+ - 0.018057903
+ - 0.11709336
+ - 0.06020313
+ - 0.00793806
+ - 0.01100656
+ - 0.11282185
+ - 0.0032131097
+ laughterScore: 0
+ - frameNumber: 1164
+ frameDelay: 0
+ Visemes:
+ - 0.012208516
+ - 0.004085842
+ - 0.4477977
+ - 0.001471663
+ - 0.0025050074
+ - 0.0007884842
+ - 0.000036753878
+ - 0.008187899
+ - 0.012657555
+ - 0.37080026
+ - 0.043760087
+ - 0.0065246955
+ - 0.007862992
+ - 0.07904404
+ - 0.002268524
+ laughterScore: 0
+ - frameNumber: 1165
+ frameDelay: 0
+ Visemes:
+ - 0.009624417
+ - 0.0029622507
+ - 0.31429943
+ - 0.0010636428
+ - 0.0017850841
+ - 0.0006205583
+ - 0.000026017378
+ - 0.0057360935
+ - 0.008876293
+ - 0.5559809
+ - 0.031064708
+ - 0.005362133
+ - 0.0056404225
+ - 0.055353116
+ - 0.0016049105
+ laughterScore: 0
+ - frameNumber: 1166
+ frameDelay: 0
+ Visemes:
+ - 0.007510297
+ - 0.0020915589
+ - 0.2200583
+ - 0.0007483602
+ - 0.0013016779
+ - 0.000642906
+ - 0.000018533816
+ - 0.004016829
+ - 0.0062217116
+ - 0.6874411
+ - 0.02193642
+ - 0.004135716
+ - 0.0039937035
+ - 0.038753286
+ - 0.0011295683
+ laughterScore: 0
+ - frameNumber: 1167
+ frameDelay: 0
+ Visemes:
+ - 0.011247342
+ - 0.0015712039
+ - 0.15432996
+ - 0.00055457844
+ - 0.0034958096
+ - 0.0014923029
+ - 0.0000145501235
+ - 0.0028631636
+ - 0.005644083
+ - 0.72987723
+ - 0.041420188
+ - 0.0140740005
+ - 0.0039649685
+ - 0.028599443
+ - 0.00085115095
+ laughterScore: 0
+ - frameNumber: 1168
+ frameDelay: 0
+ Visemes:
+ - 0.01726021
+ - 0.0011404358
+ - 0.108255394
+ - 0.00044890025
+ - 0.0054717446
+ - 0.0016894809
+ - 0.00001885986
+ - 0.0020292483
+ - 0.005706623
+ - 0.55386496
+ - 0.15111183
+ - 0.12379444
+ - 0.0036117926
+ - 0.024957862
+ - 0.00063819083
+ laughterScore: 0
+ - frameNumber: 1169
+ frameDelay: 0
+ Visemes:
+ - 0.016582634
+ - 0.0008257555
+ - 0.07583325
+ - 0.00035117075
+ - 0.004725996
+ - 0.0013980343
+ - 0.000025066753
+ - 0.0014277685
+ - 0.0042601824
+ - 0.3948704
+ - 0.2906769
+ - 0.18753952
+ - 0.0028869007
+ - 0.018138379
+ - 0.00045804016
+ laughterScore: 0
+ - frameNumber: 1170
+ frameDelay: 0
+ Visemes:
+ - 0.013900173
+ - 0.0006338401
+ - 0.05316896
+ - 0.00028242473
+ - 0.0038047838
+ - 0.0011048438
+ - 0.00006428764
+ - 0.0010292076
+ - 0.003108494
+ - 0.27749962
+ - 0.4904399
+ - 0.13926843
+ - 0.0023782174
+ - 0.012928888
+ - 0.00038792886
+ laughterScore: 0
+ - frameNumber: 1171
+ frameDelay: 0
+ Visemes:
+ - 0.012469498
+ - 0.0008989945
+ - 0.037598114
+ - 0.00031283527
+ - 0.004481595
+ - 0.0018064886
+ - 0.00092952483
+ - 0.0008406242
+ - 0.0027510405
+ - 0.19515924
+ - 0.6291053
+ - 0.10030592
+ - 0.0020780133
+ - 0.009275876
+ - 0.0019868652
+ laughterScore: 0
+ - frameNumber: 1172
+ frameDelay: 0
+ Visemes:
+ - 0.012186045
+ - 0.0012768907
+ - 0.026730964
+ - 0.0003301266
+ - 0.0048955632
+ - 0.003256944
+ - 0.0013388891
+ - 0.00086005905
+ - 0.003691738
+ - 0.13789643
+ - 0.7227385
+ - 0.07248827
+ - 0.002092438
+ - 0.0066290027
+ - 0.0035881046
+ laughterScore: 0
+ - frameNumber: 1173
+ frameDelay: 0
+ Visemes:
+ - 0.013521989
+ - 0.0022111237
+ - 0.019400477
+ - 0.00074217
+ - 0.007840966
+ - 0.026085095
+ - 0.004071281
+ - 0.0021651275
+ - 0.0060899416
+ - 0.09851382
+ - 0.7523378
+ - 0.052671555
+ - 0.0061357887
+ - 0.004710697
+ - 0.0035021964
+ laughterScore: 0
+ - frameNumber: 1174
+ frameDelay: 0
+ Visemes:
+ - 0.015194796
+ - 0.003081854
+ - 0.0145489955
+ - 0.0009393606
+ - 0.012822805
+ - 0.05543303
+ - 0.0044569243
+ - 0.0040900903
+ - 0.0072821863
+ - 0.06930743
+ - 0.7507601
+ - 0.039647777
+ - 0.016213967
+ - 0.0033410767
+ - 0.0028796908
+ laughterScore: 0
+ - frameNumber: 1175
+ frameDelay: 0
+ Visemes:
+ - 0.012158694
+ - 0.27962974
+ - 0.013637922
+ - 0.002481964
+ - 0.019494865
+ - 0.039464235
+ - 0.0032372267
+ - 0.0029842444
+ - 0.0051602237
+ - 0.048532084
+ - 0.5293648
+ - 0.027800782
+ - 0.011631169
+ - 0.0023430025
+ - 0.0020791362
+ laughterScore: 0
+ - frameNumber: 1176
+ frameDelay: 0
+ Visemes:
+ - 0.0098799495
+ - 0.47406015
+ - 0.01322913
+ - 0.0040790164
+ - 0.025045728
+ - 0.028298082
+ - 0.0023470228
+ - 0.002236446
+ - 0.0036234776
+ - 0.033976372
+ - 0.3724639
+ - 0.0194686
+ - 0.008170761
+ - 0.0016417176
+ - 0.0014797145
+ laughterScore: 0
+ - frameNumber: 1177
+ frameDelay: 0
+ Visemes:
+ - 0.009162122
+ - 0.6161079
+ - 0.011679169
+ - 0.005236461
+ - 0.02379108
+ - 0.020414956
+ - 0.0016692796
+ - 0.0016638048
+ - 0.0025419865
+ - 0.023785394
+ - 0.26234525
+ - 0.013639612
+ - 0.005747633
+ - 0.0011522372
+ - 0.0010631427
+ laughterScore: 0
+ - frameNumber: 1178
+ frameDelay: 0
+ Visemes:
+ - 0.008393799
+ - 0.7240654
+ - 0.009602342
+ - 0.0044028074
+ - 0.019091463
+ - 0.014476219
+ - 0.0011811096
+ - 0.0013001219
+ - 0.0017858007
+ - 0.01665104
+ - 0.18387333
+ - 0.009559641
+ - 0.004056961
+ - 0.00080894906
+ - 0.00075099256
+ laughterScore: 0
+ - frameNumber: 1179
+ frameDelay: 0
+ Visemes:
+ - 0.0090322895
+ - 0.7868211
+ - 0.008727552
+ - 0.0032273899
+ - 0.02169174
+ - 0.011040393
+ - 0.0031264992
+ - 0.0036095076
+ - 0.0012990905
+ - 0.011680377
+ - 0.12888546
+ - 0.006703496
+ - 0.0030457128
+ - 0.0005719884
+ - 0.0005373951
+ laughterScore: 0
+ - frameNumber: 1180
+ frameDelay: 0
+ Visemes:
+ - 0.009652863
+ - 0.8207675
+ - 0.0075872717
+ - 0.0024503635
+ - 0.016484402
+ - 0.00927342
+ - 0.0067157233
+ - 0.019579927
+ - 0.0010369943
+ - 0.008205367
+ - 0.090274274
+ - 0.004702722
+ - 0.002481098
+ - 0.00040328834
+ - 0.00038480907
+ laughterScore: 0
+ - frameNumber: 1181
+ frameDelay: 0
+ Visemes:
+ - 0.010709776
+ - 0.84896195
+ - 0.0064012026
+ - 0.001987009
+ - 0.011994424
+ - 0.010957712
+ - 0.007970734
+ - 0.023474686
+ - 0.0010127719
+ - 0.0058003855
+ - 0.06326058
+ - 0.0033359393
+ - 0.003540806
+ - 0.00028797355
+ - 0.0003040651
+ laughterScore: 0
+ - frameNumber: 1182
+ frameDelay: 0
+ Visemes:
+ - 0.0122722415
+ - 0.7075705
+ - 0.0046846764
+ - 0.001525108
+ - 0.008970717
+ - 0.061146274
+ - 0.0075109624
+ - 0.018059572
+ - 0.008758116
+ - 0.004682619
+ - 0.045780975
+ - 0.00285633
+ - 0.11451484
+ - 0.0002743019
+ - 0.0013927398
+ laughterScore: 0
+ - frameNumber: 1183
+ frameDelay: 0
+ Visemes:
+ - 0.021999745
+ - 0.49550185
+ - 0.0032952551
+ - 0.0011120569
+ - 0.006410323
+ - 0.063140035
+ - 0.005521372
+ - 0.012784795
+ - 0.007574862
+ - 0.00336776
+ - 0.03671683
+ - 0.024812955
+ - 0.30289957
+ - 0.0002557499
+ - 0.014606844
+ laughterScore: 0
+ - frameNumber: 1184
+ frameDelay: 0
+ Visemes:
+ - 0.029578155
+ - 0.3469226
+ - 0.002316769
+ - 0.00080198864
+ - 0.00468195
+ - 0.052369602
+ - 0.0039750296
+ - 0.009062935
+ - 0.006219741
+ - 0.0024216014
+ - 0.028039515
+ - 0.038528375
+ - 0.45397705
+ - 0.0002082121
+ - 0.020896472
+ laughterScore: 0
+ - frameNumber: 1185
+ frameDelay: 0
+ Visemes:
+ - 0.033204183
+ - 0.24299254
+ - 0.0016332744
+ - 0.0006354802
+ - 0.0041641206
+ - 0.03865209
+ - 0.0029557564
+ - 0.0064201723
+ - 0.0075111883
+ - 0.0019540277
+ - 0.021608904
+ - 0.030395418
+ - 0.5869957
+ - 0.00016992398
+ - 0.020707225
+ laughterScore: 0
+ - frameNumber: 1186
+ frameDelay: 0
+ Visemes:
+ - 0.030575309
+ - 0.17021945
+ - 0.001150785
+ - 0.00050793507
+ - 0.0035012783
+ - 0.02905805
+ - 0.0021509135
+ - 0.0045351116
+ - 0.009469673
+ - 0.0014401377
+ - 0.015465588
+ - 0.022264125
+ - 0.6933838
+ - 0.00013225371
+ - 0.016145615
+ laughterScore: 0
+ - frameNumber: 1187
+ frameDelay: 0
+ Visemes:
+ - 0.02822485
+ - 0.11924937
+ - 0.00082247413
+ - 0.00039318722
+ - 0.003002979
+ - 0.026192518
+ - 0.0015857157
+ - 0.0032975394
+ - 0.013545133
+ - 0.001048264
+ - 0.010932889
+ - 0.01625496
+ - 0.7633382
+ - 0.00009676537
+ - 0.012015181
+ laughterScore: 0
+ - frameNumber: 1188
+ frameDelay: 0
+ Visemes:
+ - 0.025236037
+ - 0.08352037
+ - 0.00059917074
+ - 0.00029731577
+ - 0.0028203344
+ - 0.019365525
+ - 0.0012164684
+ - 0.0024567142
+ - 0.010602981
+ - 0.00075208186
+ - 0.0077204085
+ - 0.012131476
+ - 0.82420194
+ - 0.000070261995
+ - 0.009009004
+ laughterScore: 0
+ - frameNumber: 1189
+ frameDelay: 0
+ Visemes:
+ - 0.023363914
+ - 0.058503825
+ - 0.00046862714
+ - 0.00022428928
+ - 0.0025083474
+ - 0.015014736
+ - 0.0010756818
+ - 0.0021057143
+ - 0.008220525
+ - 0.0005542512
+ - 0.0054737707
+ - 0.0097981775
+ - 0.8657204
+ - 0.00005358617
+ - 0.006914242
+ laughterScore: 0
+ - frameNumber: 1190
+ frameDelay: 0
+ Visemes:
+ - 0.021650849
+ - 0.041105356
+ - 0.0003818278
+ - 0.00016693329
+ - 0.0056745503
+ - 0.010859365
+ - 0.0009001666
+ - 0.0018972019
+ - 0.006180124
+ - 0.0004135275
+ - 0.0038569528
+ - 0.009015188
+ - 0.8927496
+ - 0.000042386564
+ - 0.0051060044
+ laughterScore: 0
+ - frameNumber: 1191
+ frameDelay: 0
+ Visemes:
+ - 0.027343562
+ - 0.029997228
+ - 0.0006058721
+ - 0.0002870285
+ - 0.023069207
+ - 0.009601121
+ - 0.0013906371
+ - 0.0028002667
+ - 0.0068041766
+ - 0.0003921552
+ - 0.0027904774
+ - 0.009411246
+ - 0.88120556
+ - 0.000046040448
+ - 0.0042554433
+ laughterScore: 0
+ - frameNumber: 1192
+ frameDelay: 0
+ Visemes:
+ - 0.029888626
+ - 0.03097651
+ - 0.0006760934
+ - 0.0004750961
+ - 0.06656174
+ - 0.009904623
+ - 0.00512038
+ - 0.0032722794
+ - 0.0051042326
+ - 0.0002991419
+ - 0.0020081718
+ - 0.008107623
+ - 0.83397824
+ - 0.000036120826
+ - 0.0035911296
+ laughterScore: 0
+ - frameNumber: 1193
+ frameDelay: 0
+ Visemes:
+ - 0.031067472
+ - 0.13273048
+ - 0.0007191464
+ - 0.002023657
+ - 0.12550607
+ - 0.010579429
+ - 0.0077315895
+ - 0.00342898
+ - 0.0037658918
+ - 0.00022343935
+ - 0.0014519533
+ - 0.005886072
+ - 0.6720886
+ - 0.000029142588
+ - 0.0027680523
+ laughterScore: 0
+ - frameNumber: 1194
+ frameDelay: 0
+ Visemes:
+ - 0.034356076
+ - 0.28117153
+ - 0.0007081003
+ - 0.0040075975
+ - 0.1490885
+ - 0.009366403
+ - 0.0063842908
+ - 0.00328709
+ - 0.002853726
+ - 0.00016629708
+ - 0.0010537732
+ - 0.0042521027
+ - 0.5012587
+ - 0.000026306916
+ - 0.0020195204
+ laughterScore: 0
+ - frameNumber: 1195
+ frameDelay: 0
+ Visemes:
+ - 0.042694137
+ - 0.36560115
+ - 0.0008327003
+ - 0.010839514
+ - 0.17909482
+ - 0.010293597
+ - 0.006179614
+ - 0.003931697
+ - 0.0022817478
+ - 0.00013889147
+ - 0.00080732745
+ - 0.0031569435
+ - 0.3726032
+ - 0.000034226156
+ - 0.0015103631
+ laughterScore: 0
+ - frameNumber: 1196
+ frameDelay: 0
+ Visemes:
+ - 0.03807202
+ - 0.25681713
+ - 0.00060315337
+ - 0.013431598
+ - 0.40379483
+ - 0.0073596956
+ - 0.0045067593
+ - 0.008525078
+ - 0.0017931033
+ - 0.000119750504
+ - 0.00062643207
+ - 0.0022304268
+ - 0.26098767
+ - 0.00004141015
+ - 0.0010908406
+ laughterScore: 0
+ - frameNumber: 1197
+ frameDelay: 0
+ Visemes:
+ - 0.038931377
+ - 0.17983189
+ - 0.0005002815
+ - 0.010996152
+ - 0.5509997
+ - 0.0054060877
+ - 0.0039409287
+ - 0.009254048
+ - 0.0013751743
+ - 0.00012444165
+ - 0.009047459
+ - 0.0016861304
+ - 0.1863738
+ - 0.000060785664
+ - 0.0014716818
+ laughterScore: 0
+ - frameNumber: 1198
+ frameDelay: 0
+ Visemes:
+ - 0.0306423
+ - 0.1258949
+ - 0.0003650821
+ - 0.008170255
+ - 0.66049093
+ - 0.005032493
+ - 0.003131328
+ - 0.006761707
+ - 0.00097455457
+ - 0.00010069875
+ - 0.023894163
+ - 0.001504221
+ - 0.13166462
+ - 0.00006625916
+ - 0.001306403
+ laughterScore: 0
+ - frameNumber: 1199
+ frameDelay: 0
+ Visemes:
+ - 0.024360398
+ - 0.08814555
+ - 0.00027669643
+ - 0.0061760414
+ - 0.631112
+ - 0.003964761
+ - 0.0023087342
+ - 0.0048220465
+ - 0.00076627784
+ - 0.00020316016
+ - 0.06213823
+ - 0.062261667
+ - 0.105512135
+ - 0.00062380935
+ - 0.007328464
+ laughterScore: 0
+ - frameNumber: 1200
+ frameDelay: 0
+ Visemes:
+ - 0.019036073
+ - 0.061704755
+ - 0.00019792824
+ - 0.0044255448
+ - 0.4447225
+ - 0.0028295761
+ - 0.0016399834
+ - 0.003381651
+ - 0.0006515655
+ - 0.00023031764
+ - 0.06911138
+ - 0.24482353
+ - 0.093910694
+ - 0.00076837104
+ - 0.05256616
+ laughterScore: 0
+ - frameNumber: 1201
+ frameDelay: 0
+ Visemes:
+ - 0.020433826
+ - 0.043206215
+ - 0.00014300495
+ - 0.0032503302
+ - 0.31320986
+ - 0.002113919
+ - 0.0011612395
+ - 0.0023756996
+ - 0.0005238437
+ - 0.000282877
+ - 0.08604811
+ - 0.3184209
+ - 0.12179266
+ - 0.00061352097
+ - 0.08642402
+ laughterScore: 0
+ - frameNumber: 1202
+ frameDelay: 0
+ Visemes:
+ - 0.025891328
+ - 0.030446218
+ - 0.00012374192
+ - 0.0026623756
+ - 0.22532177
+ - 0.0022750814
+ - 0.00085773214
+ - 0.0016884495
+ - 0.0006238825
+ - 0.0012048208
+ - 0.09758019
+ - 0.3185691
+ - 0.17306706
+ - 0.0005491207
+ - 0.119139135
+ laughterScore: 0
+ - frameNumber: 1203
+ frameDelay: 0
+ Visemes:
+ - 0.047007706
+ - 0.022109171
+ - 0.00012936592
+ - 0.00218958
+ - 0.17324139
+ - 0.0046725296
+ - 0.0007249033
+ - 0.0012144976
+ - 0.00075169536
+ - 0.0024122729
+ - 0.10240587
+ - 0.34631473
+ - 0.17667188
+ - 0.0005645795
+ - 0.11958982
+ laughterScore: 0
+ - frameNumber: 1204
+ frameDelay: 0
+ Visemes:
+ - 0.098993905
+ - 0.017112033
+ - 0.00015058382
+ - 0.0017184028
+ - 0.13719653
+ - 0.007825188
+ - 0.00060248806
+ - 0.00085560355
+ - 0.00086174003
+ - 0.0021478548
+ - 0.13030204
+ - 0.33835763
+ - 0.16018197
+ - 0.0008069691
+ - 0.10288705
+ laughterScore: 0
+ - frameNumber: 1205
+ frameDelay: 0
+ Visemes:
+ - 0.21849254
+ - 0.016555106
+ - 0.00018625407
+ - 0.0020010052
+ - 0.1474811
+ - 0.017409831
+ - 0.0023097934
+ - 0.0007031099
+ - 0.0009331118
+ - 0.0021768839
+ - 0.098916665
+ - 0.26613078
+ - 0.13635778
+ - 0.0017117411
+ - 0.088634305
+ laughterScore: 0
+ - frameNumber: 1206
+ frameDelay: 0
+ Visemes:
+ - 0.3050971
+ - 0.018601716
+ - 0.00024133072
+ - 0.0019201485
+ - 0.12274438
+ - 0.02904765
+ - 0.0025472343
+ - 0.00068985095
+ - 0.0012487133
+ - 0.002624344
+ - 0.07488421
+ - 0.22670887
+ - 0.14390261
+ - 0.0032109246
+ - 0.06653088
+ laughterScore: 0
+ - frameNumber: 1207
+ frameDelay: 0
+ Visemes:
+ - 0.25975212
+ - 0.017319739
+ - 0.00024469307
+ - 0.0015756898
+ - 0.103754796
+ - 0.024140595
+ - 0.002218307
+ - 0.00057977566
+ - 0.0016167169
+ - 0.001926209
+ - 0.05832834
+ - 0.29730168
+ - 0.18171099
+ - 0.002533196
+ - 0.046997163
+ laughterScore: 0
+ - frameNumber: 1208
+ frameDelay: 0
+ Visemes:
+ - 0.19187225
+ - 0.012684426
+ - 0.00020386247
+ - 0.0012399097
+ - 0.074674465
+ - 0.018993892
+ - 0.0015780292
+ - 0.00043076248
+ - 0.0023323349
+ - 0.0014294584
+ - 0.042927038
+ - 0.4552756
+ - 0.16154817
+ - 0.0018590185
+ - 0.03295078
+ laughterScore: 0
+ - frameNumber: 1209
+ frameDelay: 0
+ Visemes:
+ - 0.14063981
+ - 0.009037939
+ - 0.00015371534
+ - 0.00089289463
+ - 0.052709028
+ - 0.013715733
+ - 0.0011103833
+ - 0.00030591857
+ - 0.0041850787
+ - 0.0010283916
+ - 0.030785708
+ - 0.5907686
+ - 0.13026002
+ - 0.0013155978
+ - 0.023091225
+ laughterScore: 0
+ - frameNumber: 1210
+ frameDelay: 0
+ Visemes:
+ - 0.10299453
+ - 0.006387797
+ - 0.00010911489
+ - 0.00063436205
+ - 0.03720719
+ - 0.009785137
+ - 0.00077903894
+ - 0.00021800023
+ - 0.0065385676
+ - 0.00076722424
+ - 0.022125373
+ - 0.6956922
+ - 0.09965225
+ - 0.0009279454
+ - 0.016181355
+ laughterScore: 0
+ - frameNumber: 1211
+ frameDelay: 0
+ Visemes:
+ - 0.075787716
+ - 0.004499558
+ - 0.000076669836
+ - 0.00045067468
+ - 0.026226422
+ - 0.0069003487
+ - 0.00054613646
+ - 0.00015640986
+ - 0.007870626
+ - 0.00056486536
+ - 0.01567607
+ - 0.7750402
+ - 0.07421247
+ - 0.00065554597
+ - 0.011336341
+ laughterScore: 0
+ - frameNumber: 1212
+ frameDelay: 0
+ Visemes:
+ - 0.056587987
+ - 0.0031761148
+ - 0.000054130218
+ - 0.0003267053
+ - 0.01876162
+ - 0.004862233
+ - 0.000383541
+ - 0.0001136143
+ - 0.010425447
+ - 0.0005286293
+ - 0.011358423
+ - 0.82896996
+ - 0.055967815
+ - 0.00047386243
+ - 0.008009953
+ laughterScore: 0
+ - frameNumber: 1213
+ frameDelay: 0
+ Visemes:
+ - 0.043662112
+ - 0.002367389
+ - 0.000041726114
+ - 0.0002598554
+ - 0.014128944
+ - 0.0034815075
+ - 0.00027079726
+ - 0.00008857055
+ - 0.0410554
+ - 0.00076239626
+ - 0.008469908
+ - 0.83289975
+ - 0.046497792
+ - 0.00034758574
+ - 0.0056662923
+ laughterScore: 0
+ - frameNumber: 1214
+ frameDelay: 0
+ Visemes:
+ - 0.032387823
+ - 0.0022808257
+ - 0.000039246603
+ - 0.00018777756
+ - 0.010060371
+ - 0.0026573446
+ - 0.00019155185
+ - 0.00006676997
+ - 0.32164216
+ - 0.00054061523
+ - 0.006023484
+ - 0.586921
+ - 0.03278834
+ - 0.0002435709
+ - 0.0039690887
+ laughterScore: 0
+ - frameNumber: 1215
+ frameDelay: 0
+ Visemes:
+ - 0.03113684
+ - 0.001845146
+ - 0.000113748225
+ - 0.0002014936
+ - 0.01290353
+ - 0.0022396408
+ - 0.0001540044
+ - 0.000091087844
+ - 0.5089133
+ - 0.00038591435
+ - 0.0044878973
+ - 0.41151115
+ - 0.023055846
+ - 0.00017689254
+ - 0.0027834857
+ laughterScore: 0
+ - frameNumber: 1216
+ frameDelay: 0
+ Visemes:
+ - 0.032990523
+ - 0.0014199222
+ - 0.00013243602
+ - 0.0009631249
+ - 0.12012703
+ - 0.0034472211
+ - 0.000117571355
+ - 0.000093441435
+ - 0.5262443
+ - 0.0002865846
+ - 0.004542565
+ - 0.2891444
+ - 0.01830018
+ - 0.00017668842
+ - 0.0020140198
+ laughterScore: 0
+ - frameNumber: 1217
+ frameDelay: 0
+ Visemes:
+ - 0.03665495
+ - 0.0010693511
+ - 0.000100291894
+ - 0.007359431
+ - 0.10146378
+ - 0.0041321707
+ - 0.00010949459
+ - 0.00008687894
+ - 0.3999033
+ - 0.000596117
+ - 0.10868549
+ - 0.24451126
+ - 0.09308902
+ - 0.0006653681
+ - 0.0015730737
+ laughterScore: 0
+ - frameNumber: 1218
+ frameDelay: 0
+ Visemes:
+ - 0.034322664
+ - 0.008698754
+ - 0.0003263115
+ - 0.0052282624
+ - 0.07191051
+ - 0.0044347188
+ - 0.000087693734
+ - 0.000064285145
+ - 0.3259353
+ - 0.0008094216
+ - 0.20030499
+ - 0.19235086
+ - 0.15370779
+ - 0.0006571324
+ - 0.0011613129
+ laughterScore: 0
+ - frameNumber: 1219
+ frameDelay: 0
+ Visemes:
+ - 0.033014268
+ - 0.16806927
+ - 0.0024030888
+ - 0.0038251928
+ - 0.054401156
+ - 0.004926926
+ - 0.00007887508
+ - 0.00008658931
+ - 0.27734312
+ - 0.00066181284
+ - 0.20947433
+ - 0.13507764
+ - 0.10929855
+ - 0.00047502818
+ - 0.00086412986
+ laughterScore: 0
+ - frameNumber: 1220
+ frameDelay: 0
+ Visemes:
+ - 0.027281996
+ - 0.40574488
+ - 0.00217473
+ - 0.0029568558
+ - 0.039047312
+ - 0.0036652978
+ - 0.00008707737
+ - 0.00012997551
+ - 0.19778238
+ - 0.0005340264
+ - 0.14832982
+ - 0.0945986
+ - 0.0766353
+ - 0.00033690865
+ - 0.0006948327
+ laughterScore: 0
+ - frameNumber: 1221
+ frameDelay: 0
+ Visemes:
+ - 0.020976633
+ - 0.57849467
+ - 0.0015788442
+ - 0.0021403523
+ - 0.027452044
+ - 0.0026854258
+ - 0.000072227835
+ - 0.00010379584
+ - 0.1396009
+ - 0.00040817086
+ - 0.10434137
+ - 0.06696564
+ - 0.054349385
+ - 0.00024196725
+ - 0.0005885363
+ laughterScore: 0
+ - frameNumber: 1222
+ frameDelay: 0
+ Visemes:
+ - 0.016412605
+ - 0.42027056
+ - 0.0011626963
+ - 0.001523191
+ - 0.019259501
+ - 0.0020224936
+ - 0.00006275613
+ - 0.00008809721
+ - 0.09783116
+ - 0.00028969455
+ - 0.07820958
+ - 0.25267097
+ - 0.10947849
+ - 0.00018393242
+ - 0.00053427654
+ laughterScore: 0
+ - frameNumber: 1223
+ frameDelay: 0
+ Visemes:
+ - 0.014558399
+ - 0.2948337
+ - 0.000834129
+ - 0.0011128276
+ - 0.013528227
+ - 0.0015554752
+ - 0.000051106796
+ - 0.0000846598
+ - 0.068644546
+ - 0.00022345799
+ - 0.057166647
+ - 0.39241508
+ - 0.15311736
+ - 0.00021494718
+ - 0.0016594322
+ laughterScore: 0
+ - frameNumber: 1224
+ frameDelay: 0
+ Visemes:
+ - 0.012911333
+ - 0.20670767
+ - 0.00059115916
+ - 0.0007932757
+ - 0.009531681
+ - 0.0011753571
+ - 0.00003835589
+ - 0.00007734568
+ - 0.04821088
+ - 0.00016286681
+ - 0.041199792
+ - 0.54550314
+ - 0.13156295
+ - 0.00017583426
+ - 0.0013583915
+ laughterScore: 0
+ - frameNumber: 1225
+ frameDelay: 0
+ Visemes:
+ - 0.011429248
+ - 0.14540784
+ - 0.0004242987
+ - 0.00057308865
+ - 0.0068272906
+ - 0.0017509887
+ - 0.000036851434
+ - 0.00007560658
+ - 0.034987148
+ - 0.00015614378
+ - 0.030236857
+ - 0.6584194
+ - 0.10844559
+ - 0.000151829
+ - 0.0010778327
+ laughterScore: 0
+ - frameNumber: 1226
+ frameDelay: 0
+ Visemes:
+ - 0.016191576
+ - 0.102385215
+ - 0.00031662645
+ - 0.00045186983
+ - 0.005312439
+ - 0.0047463547
+ - 0.00005065928
+ - 0.00010079966
+ - 0.029319406
+ - 0.00021301271
+ - 0.022907862
+ - 0.68559974
+ - 0.13141024
+ - 0.00015018697
+ - 0.00084399374
+ laughterScore: 0
+ - frameNumber: 1227
+ frameDelay: 0
+ Visemes:
+ - 0.017357128
+ - 0.07231872
+ - 0.00023341597
+ - 0.00046282166
+ - 0.007181471
+ - 0.004872456
+ - 0.00007912338
+ - 0.00012936612
+ - 0.030522073
+ - 0.00033117103
+ - 0.01983612
+ - 0.6925171
+ - 0.15316275
+ - 0.00020572863
+ - 0.0007905429
+ laughterScore: 0
+ - frameNumber: 1228
+ frameDelay: 0
+ Visemes:
+ - 0.020753093
+ - 0.052441537
+ - 0.00025198527
+ - 0.00056877534
+ - 0.060532723
+ - 0.016174506
+ - 0.00038321983
+ - 0.0002693228
+ - 0.069095805
+ - 0.00035019853
+ - 0.016475545
+ - 0.5843319
+ - 0.1774723
+ - 0.00015973308
+ - 0.0007393143
+ laughterScore: 0
+ - frameNumber: 1229
+ frameDelay: 0
+ Visemes:
+ - 0.031015076
+ - 0.03763005
+ - 0.000207911
+ - 0.00052929233
+ - 0.14635414
+ - 0.015723892
+ - 0.0003029921
+ - 0.0003101009
+ - 0.10230068
+ - 0.00045751006
+ - 0.030077428
+ - 0.45004115
+ - 0.18425998
+ - 0.00019373343
+ - 0.00059605256
+ laughterScore: 0
+ - frameNumber: 1230
+ frameDelay: 0
+ Visemes:
+ - 0.07412298
+ - 0.028534159
+ - 0.0002664752
+ - 0.0007517213
+ - 0.19815286
+ - 0.014625482
+ - 0.00039618372
+ - 0.00033777903
+ - 0.101166554
+ - 0.0006065816
+ - 0.03402923
+ - 0.33797473
+ - 0.20816457
+ - 0.00023982758
+ - 0.00063085184
+ laughterScore: 0
+ - frameNumber: 1231
+ frameDelay: 0
+ Visemes:
+ - 0.14171393
+ - 0.020752218
+ - 0.00024086461
+ - 0.0008552176
+ - 0.26423714
+ - 0.01299157
+ - 0.000711612
+ - 0.0009944999
+ - 0.07984269
+ - 0.0016678858
+ - 0.045528226
+ - 0.26600352
+ - 0.16262594
+ - 0.0011728562
+ - 0.0006618177
+ laughterScore: 0
+ - frameNumber: 1232
+ frameDelay: 0
+ Visemes:
+ - 0.12669717
+ - 0.014685301
+ - 0.00019805614
+ - 0.0006646105
+ - 0.20905069
+ - 0.00947143
+ - 0.00066727604
+ - 0.0008864951
+ - 0.05943265
+ - 0.0013355968
+ - 0.21082364
+ - 0.24703361
+ - 0.11716416
+ - 0.0013497398
+ - 0.00053961045
+ laughterScore: 0
+ - frameNumber: 1233
+ frameDelay: 0
+ Visemes:
+ - 0.09915816
+ - 0.010344127
+ - 0.00015744871
+ - 0.000524524
+ - 0.14780138
+ - 0.007091085
+ - 0.0004998158
+ - 0.00064150186
+ - 0.042307205
+ - 0.00099893
+ - 0.303392
+ - 0.30114508
+ - 0.08315123
+ - 0.0023889407
+ - 0.00039858485
+ laughterScore: 0
+ - frameNumber: 1234
+ frameDelay: 0
+ Visemes:
+ - 0.076409474
+ - 0.0072630034
+ - 0.000113010494
+ - 0.00037691998
+ - 0.10365665
+ - 0.0051399465
+ - 0.00035650644
+ - 0.00045316818
+ - 0.02972836
+ - 0.00071981037
+ - 0.33008873
+ - 0.38479412
+ - 0.058698896
+ - 0.0019123807
+ - 0.00028902022
+ laughterScore: 0
+ - frameNumber: 1235
+ frameDelay: 0
+ Visemes:
+ - 0.059163228
+ - 0.005139177
+ - 0.00008990359
+ - 0.00026813717
+ - 0.073720716
+ - 0.003760451
+ - 0.00025160474
+ - 0.00032905006
+ - 0.02087291
+ - 0.00059426477
+ - 0.28934443
+ - 0.5030401
+ - 0.041203808
+ - 0.0018045243
+ - 0.0004176881
+ laughterScore: 0
+ - frameNumber: 1236
+ frameDelay: 0
+ Visemes:
+ - 0.050660208
+ - 0.0049341326
+ - 0.00016337557
+ - 0.00020229729
+ - 0.06232454
+ - 0.0028179039
+ - 0.00018914722
+ - 0.00032293604
+ - 0.017193548
+ - 0.0008160143
+ - 0.23810948
+ - 0.57517105
+ - 0.028943982
+ - 0.002561113
+ - 0.015590244
+ laughterScore: 0
+ - frameNumber: 1237
+ frameDelay: 0
+ Visemes:
+ - 0.04726168
+ - 0.01873561
+ - 0.008920169
+ - 0.00023128325
+ - 0.050843634
+ - 0.0020757602
+ - 0.00015599428
+ - 0.00031640375
+ - 0.024318665
+ - 0.0016963547
+ - 0.1891291
+ - 0.6152983
+ - 0.020393906
+ - 0.0021938193
+ - 0.018429311
+ laughterScore: 0
+ - frameNumber: 1238
+ frameDelay: 0
+ Visemes:
+ - 0.050058693
+ - 0.16467425
+ - 0.103591025
+ - 0.00086271163
+ - 0.044528037
+ - 0.0017899959
+ - 0.00014187847
+ - 0.00046093308
+ - 0.018219281
+ - 0.0014076731
+ - 0.14629541
+ - 0.4387143
+ - 0.014419923
+ - 0.0016244086
+ - 0.013211465
+ laughterScore: 0
+ - frameNumber: 1239
+ frameDelay: 0
+ Visemes:
+ - 0.044881307
+ - 0.21211815
+ - 0.2323208
+ - 0.01317755
+ - 0.04145176
+ - 0.0014038176
+ - 0.00022415572
+ - 0.00041381747
+ - 0.013871172
+ - 0.0012756098
+ - 0.10561421
+ - 0.30730972
+ - 0.010270757
+ - 0.0011790326
+ - 0.014488143
+ laughterScore: 0
+ - frameNumber: 1240
+ frameDelay: 0
+ Visemes:
+ - 0.038033713
+ - 0.16597074
+ - 0.2390505
+ - 0.013501156
+ - 0.031628717
+ - 0.0014939038
+ - 0.00093806663
+ - 0.00041322486
+ - 0.010643441
+ - 0.0014075902
+ - 0.23352706
+ - 0.21679075
+ - 0.031576954
+ - 0.00085548934
+ - 0.014168699
+ laughterScore: 0
+ - frameNumber: 1241
+ frameDelay: 0
+ Visemes:
+ - 0.028227147
+ - 0.116215624
+ - 0.16790165
+ - 0.00950941
+ - 0.022318205
+ - 0.0010570479
+ - 0.000678982
+ - 0.00030196685
+ - 0.007578712
+ - 0.002162274
+ - 0.43350232
+ - 0.15288797
+ - 0.044592522
+ - 0.0006929086
+ - 0.012373258
+ laughterScore: 0
+ - frameNumber: 1242
+ frameDelay: 0
+ Visemes:
+ - 0.030853271
+ - 0.08172088
+ - 0.1281305
+ - 0.0136264255
+ - 0.15096769
+ - 0.0062329504
+ - 0.0031232075
+ - 0.0012046668
+ - 0.013103463
+ - 0.0049642306
+ - 0.39573318
+ - 0.10761938
+ - 0.053182274
+ - 0.00067344005
+ - 0.00886442
+ laughterScore: 0
+ - frameNumber: 1243
+ frameDelay: 0
+ Visemes:
+ - 0.0232637
+ - 0.05724054
+ - 0.089957625
+ - 0.010935338
+ - 0.39625448
+ - 0.0051134005
+ - 0.006039572
+ - 0.0010441015
+ - 0.009402512
+ - 0.0035451385
+ - 0.277744
+ - 0.07534838
+ - 0.037390348
+ - 0.00047777995
+ - 0.0062430985
+ laughterScore: 0
+ - frameNumber: 1244
+ frameDelay: 0
+ Visemes:
+ - 0.01940469
+ - 0.04011406
+ - 0.06301965
+ - 0.008272621
+ - 0.57097197
+ - 0.003953674
+ - 0.004608088
+ - 0.0020068472
+ - 0.0066358144
+ - 0.0025145842
+ - 0.19468601
+ - 0.0527558
+ - 0.026281893
+ - 0.00034440015
+ - 0.0044299
+ laughterScore: 0
+ - frameNumber: 1245
+ frameDelay: 0
+ Visemes:
+ - 0.014604036
+ - 0.02812452
+ - 0.044176683
+ - 0.005921759
+ - 0.68864655
+ - 0.007410084
+ - 0.0034324655
+ - 0.0014780103
+ - 0.004652866
+ - 0.0018709429
+ - 0.14020792
+ - 0.03697152
+ - 0.018467722
+ - 0.00044285343
+ - 0.0035920942
+ laughterScore: 0
+ - frameNumber: 1246
+ frameDelay: 0
+ Visemes:
+ - 0.012066167
+ - 0.019702468
+ - 0.030958004
+ - 0.004202295
+ - 0.76902235
+ - 0.00924144
+ - 0.00249329
+ - 0.0010667968
+ - 0.0032623087
+ - 0.0013658226
+ - 0.1022929
+ - 0.026176115
+ - 0.013005238
+ - 0.0022491387
+ - 0.0028956912
+ laughterScore: 0
+ - frameNumber: 1247
+ frameDelay: 0
+ Visemes:
+ - 0.0129036475
+ - 0.01390392
+ - 0.021698456
+ - 0.0029654836
+ - 0.7441751
+ - 0.014077563
+ - 0.0018557325
+ - 0.00075288414
+ - 0.0022943974
+ - 0.0011231252
+ - 0.118258715
+ - 0.030281015
+ - 0.009210336
+ - 0.024237234
+ - 0.002262438
+ laughterScore: 0
+ - frameNumber: 1248
+ frameDelay: 0
+ Visemes:
+ - 0.012125017
+ - 0.009753623
+ - 0.015214887
+ - 0.002087848
+ - 0.52544516
+ - 0.011591323
+ - 0.00132599
+ - 0.0005291327
+ - 0.0016569945
+ - 0.0010421412
+ - 0.32445255
+ - 0.023566432
+ - 0.0065541156
+ - 0.06298722
+ - 0.0016676129
+ laughterScore: 0
+ - frameNumber: 1249
+ frameDelay: 0
+ Visemes:
+ - 0.011876388
+ - 0.0068338155
+ - 0.010655744
+ - 0.0014706808
+ - 0.36821708
+ - 0.00857171
+ - 0.0009306755
+ - 0.0003713943
+ - 0.0012889974
+ - 0.009081625
+ - 0.38380283
+ - 0.017515263
+ - 0.0046475143
+ - 0.17354235
+ - 0.0011940035
+ laughterScore: 0
+ - frameNumber: 1250
+ frameDelay: 0
+ Visemes:
+ - 0.01769444
+ - 0.0048907134
+ - 0.007461588
+ - 0.001061565
+ - 0.2580955
+ - 0.0067754523
+ - 0.00065540354
+ - 0.00026360448
+ - 0.0010542008
+ - 0.030715756
+ - 0.48739457
+ - 0.013199969
+ - 0.0035182873
+ - 0.16635157
+ - 0.0008674253
+ laughterScore: 0
+ - frameNumber: 1251
+ frameDelay: 0
+ Visemes:
+ - 0.024909273
+ - 0.030280607
+ - 0.005274495
+ - 0.00079640554
+ - 0.18147185
+ - 0.005209717
+ - 0.00047445262
+ - 0.00020409214
+ - 0.0012808805
+ - 0.1968523
+ - 0.37335098
+ - 0.0106092915
+ - 0.004275397
+ - 0.16434571
+ - 0.0006645635
+ laughterScore: 0
+ - frameNumber: 1252
+ frameDelay: 0
+ Visemes:
+ - 0.024706006
+ - 0.04868532
+ - 0.0142189395
+ - 0.0006063083
+ - 0.12881842
+ - 0.05271399
+ - 0.0004966138
+ - 0.00032393582
+ - 0.0016561256
+ - 0.32421845
+ - 0.26421565
+ - 0.008307599
+ - 0.0038008313
+ - 0.12634985
+ - 0.0008819781
+ laughterScore: 0
+ - frameNumber: 1253
+ frameDelay: 0
+ Visemes:
+ - 0.021290902
+ - 0.09151481
+ - 0.13960196
+ - 0.0004767434
+ - 0.096217595
+ - 0.1190348
+ - 0.0004332541
+ - 0.0013889056
+ - 0.0014394581
+ - 0.24426287
+ - 0.18646169
+ - 0.0058308984
+ - 0.0029375162
+ - 0.088460095
+ - 0.0006485421
+ laughterScore: 0
+ - frameNumber: 1254
+ frameDelay: 0
+ Visemes:
+ - 0.020179
+ - 0.08667867
+ - 0.319496
+ - 0.0005406051
+ - 0.07545609
+ - 0.11749952
+ - 0.0004283936
+ - 0.0059032557
+ - 0.0011231184
+ - 0.17287236
+ - 0.13120759
+ - 0.0040886034
+ - 0.002121023
+ - 0.06193467
+ - 0.00047120656
+ laughterScore: 0
+ - frameNumber: 1255
+ frameDelay: 0
+ Visemes:
+ - 0.016973522
+ - 0.07569651
+ - 0.4916526
+ - 0.0009504348
+ - 0.056913666
+ - 0.087951474
+ - 0.00033422367
+ - 0.0058633983
+ - 0.000822245
+ - 0.12233208
+ - 0.09230745
+ - 0.0028710272
+ - 0.0016284237
+ - 0.043361407
+ - 0.00034158785
+ laughterScore: 0
+ - frameNumber: 1256
+ frameDelay: 0
+ Visemes:
+ - 0.016309343
+ - 0.07048908
+ - 0.59626436
+ - 0.0031266427
+ - 0.056782708
+ - 0.06297773
+ - 0.0003298545
+ - 0.00583794
+ - 0.00066283776
+ - 0.08727351
+ - 0.06582207
+ - 0.0020446202
+ - 0.0014269445
+ - 0.030370886
+ - 0.00028154196
+ laughterScore: 0
+ - frameNumber: 1257
+ frameDelay: 0
+ Visemes:
+ - 0.016874257
+ - 0.06145585
+ - 0.5464445
+ - 0.0048828097
+ - 0.04950262
+ - 0.04539798
+ - 0.00045291416
+ - 0.004485166
+ - 0.0048122867
+ - 0.06650789
+ - 0.088353716
+ - 0.0046076914
+ - 0.081915505
+ - 0.021729723
+ - 0.002577179
+ laughterScore: 0
+ - frameNumber: 1258
+ frameDelay: 0
+ Visemes:
+ - 0.015547459
+ - 0.0506515
+ - 0.4025331
+ - 0.005027392
+ - 0.03652492
+ - 0.032174207
+ - 0.00036154373
+ - 0.003145939
+ - 0.004136904
+ - 0.05076586
+ - 0.08914952
+ - 0.048700444
+ - 0.24366009
+ - 0.015384081
+ - 0.0022371092
+ laughterScore: 0
+ - frameNumber: 1259
+ frameDelay: 0
+ Visemes:
+ - 0.013966768
+ - 0.03618666
+ - 0.28301853
+ - 0.0037353574
+ - 0.025777308
+ - 0.02261471
+ - 0.00028332873
+ - 0.002214867
+ - 0.0033496316
+ - 0.036141023
+ - 0.07277663
+ - 0.19277114
+ - 0.29447228
+ - 0.010861717
+ - 0.0018301306
+ laughterScore: 0
+ - frameNumber: 1260
+ frameDelay: 0
+ Visemes:
+ - 0.012900049
+ - 0.025498018
+ - 0.1983806
+ - 0.002709665
+ - 0.018218186
+ - 0.01593056
+ - 0.0002322092
+ - 0.0015898824
+ - 0.0032440892
+ - 0.02546625
+ - 0.051716212
+ - 0.38963714
+ - 0.24513309
+ - 0.0077368845
+ - 0.0016072013
+ laughterScore: 0
+ - frameNumber: 1261
+ frameDelay: 0
+ Visemes:
+ - 0.011904718
+ - 0.01791623
+ - 0.1389399
+ - 0.0019287935
+ - 0.012940293
+ - 0.011806386
+ - 0.00018087277
+ - 0.0011601218
+ - 0.0028335238
+ - 0.018108353
+ - 0.036496084
+ - 0.5490855
+ - 0.18986605
+ - 0.005502069
+ - 0.001331148
+ laughterScore: 0
+ - frameNumber: 1262
+ frameDelay: 0
+ Visemes:
+ - 0.009873347
+ - 0.012566126
+ - 0.09729107
+ - 0.0013853076
+ - 0.009239645
+ - 0.008504709
+ - 0.00014566898
+ - 0.0008876126
+ - 0.0022335642
+ - 0.012818011
+ - 0.025750479
+ - 0.6755572
+ - 0.13883956
+ - 0.0038983715
+ - 0.0010093929
+ laughterScore: 0
+ - frameNumber: 1263
+ frameDelay: 0
+ Visemes:
+ - 0.0075122714
+ - 0.008807645
+ - 0.06815085
+ - 0.0009870327
+ - 0.006604
+ - 0.0059673674
+ - 0.00011886487
+ - 0.004848599
+ - 0.0015757655
+ - 0.009045166
+ - 0.018070322
+ - 0.76619
+ - 0.09864971
+ - 0.0027620886
+ - 0.00071036955
+ laughterScore: 0
+ - frameNumber: 1264
+ frameDelay: 0
+ Visemes:
+ - 0.0073669977
+ - 0.0061929016
+ - 0.04775608
+ - 0.000796814
+ - 0.0053607086
+ - 0.0043400954
+ - 0.0001418322
+ - 0.28104421
+ - 0.0011381701
+ - 0.006344048
+ - 0.012717452
+ - 0.5548718
+ - 0.06948323
+ - 0.0019449894
+ - 0.00050067436
+ laughterScore: 0
+ - frameNumber: 1265
+ frameDelay: 0
+ Visemes:
+ - 0.0071141412
+ - 0.0043931864
+ - 0.033498876
+ - 0.0008139858
+ - 0.0047168913
+ - 0.0031013524
+ - 0.00014014501
+ - 0.4891475
+ - 0.00080164964
+ - 0.0044451943
+ - 0.008928323
+ - 0.39243007
+ - 0.048747897
+ - 0.001366697
+ - 0.00035408488
+ laughterScore: 0
+ - frameNumber: 1266
+ frameDelay: 0
+ Visemes:
+ - 0.008835824
+ - 0.0031243654
+ - 0.023510171
+ - 0.0010439387
+ - 0.017483164
+ - 0.0022578274
+ - 0.00015626484
+ - 0.6226856
+ - 0.000583218
+ - 0.0031173474
+ - 0.0063089
+ - 0.2749213
+ - 0.03474591
+ - 0.00096115103
+ - 0.00026502687
+ laughterScore: 0
+ - frameNumber: 1267
+ frameDelay: 0
+ Visemes:
+ - 0.016031915
+ - 0.0050321496
+ - 0.017210463
+ - 0.0035327848
+ - 0.040420447
+ - 0.002838492
+ - 0.00016103144
+ - 0.6544403
+ - 0.0011281038
+ - 0.0022898505
+ - 0.008024826
+ - 0.19280298
+ - 0.05423077
+ - 0.00077841274
+ - 0.0010774956
+ laughterScore: 0
+ - frameNumber: 1268
+ frameDelay: 0
+ Visemes:
+ - 0.019582933
+ - 0.00395468
+ - 0.012110069
+ - 0.005577623
+ - 0.03237936
+ - 0.0032951147
+ - 0.00027318735
+ - 0.49928764
+ - 0.0018599203
+ - 0.0017387904
+ - 0.020527273
+ - 0.3006688
+ - 0.093954936
+ - 0.0037693253
+ - 0.0010203556
+ laughterScore: 0
+ - frameNumber: 1269
+ frameDelay: 0
+ Visemes:
+ - 0.019011483
+ - 0.0028079518
+ - 0.008547261
+ - 0.0052445796
+ - 0.02411074
+ - 0.0024523549
+ - 0.00024330005
+ - 0.34988132
+ - 0.0016615725
+ - 0.001955687
+ - 0.066997394
+ - 0.29467046
+ - 0.21831255
+ - 0.0031628746
+ - 0.00094050996
+ laughterScore: 0
+ - frameNumber: 1270
+ frameDelay: 0
+ Visemes:
+ - 0.017824402
+ - 0.001991359
+ - 0.0061374097
+ - 0.0038605237
+ - 0.020057894
+ - 0.0017670458
+ - 0.00022127337
+ - 0.2453196
+ - 0.0016671834
+ - 0.0027965843
+ - 0.13408582
+ - 0.2755637
+ - 0.28508073
+ - 0.0024847595
+ - 0.0011417363
+ laughterScore: 0
+ - frameNumber: 1271
+ frameDelay: 0
+ Visemes:
+ - 0.017829038
+ - 0.0014776664
+ - 0.0047318437
+ - 0.0031916504
+ - 0.028294481
+ - 0.0013483975
+ - 0.0003042164
+ - 0.17409904
+ - 0.0037484425
+ - 0.0030501422
+ - 0.14338052
+ - 0.25997573
+ - 0.35557693
+ - 0.002006727
+ - 0.0009852267
+ laughterScore: 0
+ - frameNumber: 1272
+ frameDelay: 0
+ Visemes:
+ - 0.019880451
+ - 0.0010767203
+ - 0.0034708597
+ - 0.0023029775
+ - 0.031394064
+ - 0.0010669421
+ - 0.00028507726
+ - 0.20765544
+ - 0.0051931487
+ - 0.0030188411
+ - 0.10700056
+ - 0.19066878
+ - 0.42476663
+ - 0.0015094467
+ - 0.0007101185
+ laughterScore: 0
+ - frameNumber: 1273
+ frameDelay: 0
+ Visemes:
+ - 0.019889005
+ - 0.00083044823
+ - 0.0025397292
+ - 0.0016681424
+ - 0.032353655
+ - 0.0010068207
+ - 0.0002511982
+ - 0.41982144
+ - 0.0043037375
+ - 0.002154579
+ - 0.07672095
+ - 0.13360734
+ - 0.30328727
+ - 0.0010606596
+ - 0.0005050802
+ laughterScore: 0
+ - frameNumber: 1274
+ frameDelay: 0
+ Visemes:
+ - 0.019282773
+ - 0.00066415715
+ - 0.0018596048
+ - 0.0013337592
+ - 0.033247
+ - 0.00083303254
+ - 0.00024602495
+ - 0.575589
+ - 0.0032695578
+ - 0.0015333488
+ - 0.054115172
+ - 0.093597494
+ - 0.21331538
+ - 0.00074668217
+ - 0.00036704034
+ laughterScore: 0
+ - frameNumber: 1275
+ frameDelay: 0
+ Visemes:
+ - 0.016500112
+ - 0.0004968872
+ - 0.0014488723
+ - 0.005812753
+ - 0.02647138
+ - 0.000959274
+ - 0.00030241336
+ - 0.69003624
+ - 0.002552407
+ - 0.0011223296
+ - 0.03822113
+ - 0.06558239
+ - 0.14964142
+ - 0.00052984495
+ - 0.00032258927
+ laughterScore: 0
+ - frameNumber: 1276
+ frameDelay: 0
+ Visemes:
+ - 0.05657187
+ - 0.00052094937
+ - 0.0015121031
+ - 0.005935324
+ - 0.02787169
+ - 0.0008353985
+ - 0.00022508971
+ - 0.69555795
+ - 0.0026935777
+ - 0.00086007203
+ - 0.033130534
+ - 0.062741674
+ - 0.10879195
+ - 0.0021212206
+ - 0.00063065754
+ laughterScore: 0
+ - frameNumber: 1277
+ frameDelay: 0
+ Visemes:
+ - 0.10180966
+ - 0.00048953417
+ - 0.0013333401
+ - 0.0043110745
+ - 0.04029037
+ - 0.00060661987
+ - 0.00016009723
+ - 0.62021434
+ - 0.0027545376
+ - 0.00063283724
+ - 0.07433702
+ - 0.07264757
+ - 0.07689145
+ - 0.0029946514
+ - 0.0005269702
+ laughterScore: 0
+ - frameNumber: 1278
+ frameDelay: 0
+ Visemes:
+ - 0.09250779
+ - 0.00039773932
+ - 0.0009473335
+ - 0.004254079
+ - 0.041054077
+ - 0.0006109101
+ - 0.00011726623
+ - 0.43570864
+ - 0.002120602
+ - 0.00048013552
+ - 0.28554067
+ - 0.07500377
+ - 0.05479524
+ - 0.005981567
+ - 0.00048024353
+ laughterScore: 0
+ - frameNumber: 1279
+ frameDelay: 0
+ Visemes:
+ - 0.10030508
+ - 0.00035359478
+ - 0.00069108215
+ - 0.004358399
+ - 0.037152782
+ - 0.0014475901
+ - 0.00009856102
+ - 0.30580685
+ - 0.0022066063
+ - 0.00046637433
+ - 0.4016279
+ - 0.0907902
+ - 0.042648427
+ - 0.011477148
+ - 0.00056949316
+ laughterScore: 0
+ - frameNumber: 1280
+ frameDelay: 0
+ Visemes:
+ - 0.076639324
+ - 0.023052704
+ - 0.002109335
+ - 0.0035405078
+ - 0.027368203
+ - 0.013780893
+ - 0.00036654103
+ - 0.21410438
+ - 0.0029095802
+ - 0.0004964235
+ - 0.5199785
+ - 0.06906921
+ - 0.03201145
+ - 0.009930019
+ - 0.0046429574
+ laughterScore: 0
+ - frameNumber: 1281
+ frameDelay: 0
+ Visemes:
+ - 0.06279372
+ - 0.025171135
+ - 0.003379561
+ - 0.0066038556
+ - 0.021831118
+ - 0.24599446
+ - 0.00043671744
+ - 0.14996068
+ - 0.0023170663
+ - 0.00038288406
+ - 0.39459866
+ - 0.04901038
+ - 0.023258928
+ - 0.010439703
+ - 0.0038211425
+ laughterScore: 0
+ - frameNumber: 1282
+ frameDelay: 0
+ Visemes:
+ - 0.054390684
+ - 0.017659225
+ - 0.002542117
+ - 0.004657302
+ - 0.015467998
+ - 0.4586214
+ - 0.00033148788
+ - 0.10543817
+ - 0.0016752791
+ - 0.00029959242
+ - 0.27756384
+ - 0.034341875
+ - 0.016325513
+ - 0.007954368
+ - 0.002731193
+ laughterScore: 0
+ - frameNumber: 1283
+ frameDelay: 0
+ Visemes:
+ - 0.05299094
+ - 0.012584209
+ - 0.0021839007
+ - 0.003439969
+ - 0.014282134
+ - 0.58896804
+ - 0.00027305144
+ - 0.08269228
+ - 0.0013202182
+ - 0.00031153217
+ - 0.1973746
+ - 0.02408639
+ - 0.011576008
+ - 0.0058404594
+ - 0.002076289
+ laughterScore: 0
+ - frameNumber: 1284
+ frameDelay: 0
+ Visemes:
+ - 0.05864079
+ - 0.009197662
+ - 0.0050799726
+ - 0.0054340176
+ - 0.017060403
+ - 0.5967839
+ - 0.00024558004
+ - 0.12920463
+ - 0.0015265457
+ - 0.00192122
+ - 0.14099501
+ - 0.016901575
+ - 0.0085278815
+ - 0.004487434
+ - 0.0039933827
+ laughterScore: 0
+ - frameNumber: 1285
+ frameDelay: 0
+ Visemes:
+ - 0.056661054
+ - 0.007177671
+ - 0.0043635266
+ - 0.0048507396
+ - 0.024456818
+ - 0.60791206
+ - 0.0002501211
+ - 0.11751737
+ - 0.010308211
+ - 0.015019181
+ - 0.102775514
+ - 0.011884075
+ - 0.0064407187
+ - 0.0044045835
+ - 0.025978388
+ laughterScore: 0
+ - frameNumber: 1286
+ frameDelay: 0
+ Visemes:
+ - 0.051168524
+ - 0.0053032283
+ - 0.0035343023
+ - 0.003895144
+ - 0.01783875
+ - 0.43644634
+ - 0.00019057622
+ - 0.08255456
+ - 0.060202695
+ - 0.145592
+ - 0.10621792
+ - 0.010087098
+ - 0.0046307
+ - 0.026691362
+ - 0.045646828
+ laughterScore: 0
+ - frameNumber: 1287
+ frameDelay: 0
+ Visemes:
+ - 0.046707906
+ - 0.005072189
+ - 0.0027697522
+ - 0.0027760935
+ - 0.013038742
+ - 0.30601242
+ - 0.00021937145
+ - 0.05780788
+ - 0.046731457
+ - 0.24517867
+ - 0.17422125
+ - 0.011778014
+ - 0.0034579802
+ - 0.050974414
+ - 0.033253867
+ laughterScore: 0
+ - frameNumber: 1288
+ frameDelay: 0
+ Visemes:
+ - 0.03926765
+ - 0.004460465
+ - 0.0020095492
+ - 0.0019519847
+ - 0.009468265
+ - 0.21439576
+ - 0.00019104328
+ - 0.040478732
+ - 0.033714775
+ - 0.1757016
+ - 0.37841314
+ - 0.010917423
+ - 0.0025360426
+ - 0.06314793
+ - 0.023345657
+ laughterScore: 0
+ - frameNumber: 1289
+ frameDelay: 0
+ Visemes:
+ - 0.03193019
+ - 0.008001575
+ - 0.0014560851
+ - 0.0013695133
+ - 0.0068564853
+ - 0.15017353
+ - 0.0001540036
+ - 0.028343815
+ - 0.023798125
+ - 0.123851225
+ - 0.53743005
+ - 0.00970618
+ - 0.0020642981
+ - 0.058508012
+ - 0.016356904
+ laughterScore: 0
+ - frameNumber: 1290
+ frameDelay: 0
+ Visemes:
+ - 0.025972567
+ - 0.00737051
+ - 0.0013255365
+ - 0.0009969624
+ - 0.0054229656
+ - 0.105482385
+ - 0.00016168253
+ - 0.021149557
+ - 0.018675346
+ - 0.086741045
+ - 0.6394621
+ - 0.013518394
+ - 0.0017563861
+ - 0.06050462
+ - 0.011459965
+ laughterScore: 0
+ - frameNumber: 1291
+ frameDelay: 0
+ Visemes:
+ - 0.028477523
+ - 0.0074566593
+ - 0.02082155
+ - 0.0011514974
+ - 0.0073766243
+ - 0.075315036
+ - 0.0034903423
+ - 0.18865578
+ - 0.019996349
+ - 0.060861148
+ - 0.51599604
+ - 0.015142212
+ - 0.0020558033
+ - 0.045175567
+ - 0.0080279065
+ laughterScore: 0
+ - frameNumber: 1292
+ frameDelay: 0
+ Visemes:
+ - 0.020635776
+ - 0.0054906677
+ - 0.014831079
+ - 0.0008111989
+ - 0.0054462915
+ - 0.052766796
+ - 0.0025041779
+ - 0.4292881
+ - 0.014392945
+ - 0.04260819
+ - 0.3618979
+ - 0.010611597
+ - 0.001468978
+ - 0.031626645
+ - 0.0056197233
+ laughterScore: 0
+ - frameNumber: 1293
+ frameDelay: 0
+ Visemes:
+ - 0.01589005
+ - 0.0050115036
+ - 0.010538633
+ - 0.00059604703
+ - 0.0059888754
+ - 0.036986
+ - 0.0019087145
+ - 0.5947455
+ - 0.010139412
+ - 0.029847126
+ - 0.25373638
+ - 0.0074573085
+ - 0.0010671217
+ - 0.022149963
+ - 0.003937342
+ laughterScore: 0
+ - frameNumber: 1294
+ frameDelay: 0
+ Visemes:
+ - 0.013335278
+ - 0.005455197
+ - 0.007462987
+ - 0.00064206787
+ - 0.01992028
+ - 0.026019387
+ - 0.0016283821
+ - 0.69517446
+ - 0.0071452865
+ - 0.020916106
+ - 0.17782418
+ - 0.005259831
+ - 0.00092480297
+ - 0.015513348
+ - 0.002778381
+ laughterScore: 0
+ - frameNumber: 1295
+ frameDelay: 0
+ Visemes:
+ - 0.0136532355
+ - 0.004165308
+ - 0.0054604197
+ - 0.009731385
+ - 0.048575528
+ - 0.018918317
+ - 0.001262715
+ - 0.63786745
+ - 0.00803649
+ - 0.0147670545
+ - 0.17393348
+ - 0.01749763
+ - 0.03252832
+ - 0.011308799
+ - 0.002293853
+ laughterScore: 0
+ - frameNumber: 1296
+ frameDelay: 0
+ Visemes:
+ - 0.013794266
+ - 0.0029623709
+ - 0.0038503944
+ - 0.013487516
+ - 0.040114347
+ - 0.013533019
+ - 0.00091288425
+ - 0.449648
+ - 0.006464538
+ - 0.010573174
+ - 0.22541858
+ - 0.14782614
+ - 0.05952567
+ - 0.01014477
+ - 0.0017443387
+ laughterScore: 0
+ - frameNumber: 1297
+ frameDelay: 0
+ Visemes:
+ - 0.019494466
+ - 0.0021325937
+ - 0.0029582856
+ - 0.010026887
+ - 0.029489003
+ - 0.009555998
+ - 0.00072426634
+ - 0.31581482
+ - 0.0055078487
+ - 0.008066861
+ - 0.2667057
+ - 0.24236652
+ - 0.07164599
+ - 0.014205699
+ - 0.0013050613
+ laughterScore: 0
+ - frameNumber: 1298
+ frameDelay: 0
+ Visemes:
+ - 0.01878847
+ - 0.0018054792
+ - 0.0035980516
+ - 0.0074535604
+ - 0.059049614
+ - 0.0076794503
+ - 0.00076923886
+ - 0.22136255
+ - 0.009100112
+ - 0.006336879
+ - 0.30222648
+ - 0.24083117
+ - 0.10852741
+ - 0.011362359
+ - 0.0011091976
+ laughterScore: 0
+ - frameNumber: 1299
+ frameDelay: 0
+ Visemes:
+ - 0.019893095
+ - 0.0024153758
+ - 0.0029943767
+ - 0.0069336696
+ - 0.08523595
+ - 0.014735021
+ - 0.0019298026
+ - 0.1551268
+ - 0.21924223
+ - 0.0045873364
+ - 0.2225984
+ - 0.17264962
+ - 0.08283836
+ - 0.008019656
+ - 0.0008003315
+ laughterScore: 0
+ - frameNumber: 1300
+ frameDelay: 0
+ Visemes:
+ - 0.01973484
+ - 0.0037372464
+ - 0.0022455864
+ - 0.006091346
+ - 0.11307138
+ - 0.0155550195
+ - 0.001580671
+ - 0.1087802
+ - 0.37826502
+ - 0.0032325962
+ - 0.160296
+ - 0.12208881
+ - 0.059101608
+ - 0.005631104
+ - 0.00058854476
+ laughterScore: 0
+ - frameNumber: 1301
+ frameDelay: 0
+ Visemes:
+ - 0.020774748
+ - 0.015561005
+ - 0.0016202674
+ - 0.009569621
+ - 0.09630641
+ - 0.012947491
+ - 0.0011880394
+ - 0.07626327
+ - 0.5140648
+ - 0.002281011
+ - 0.11590591
+ - 0.08593042
+ - 0.04312683
+ - 0.0039618467
+ - 0.00049830927
+ laughterScore: 0
+ - frameNumber: 1302
+ frameDelay: 0
+ Visemes:
+ - 0.02458471
+ - 0.025454424
+ - 0.0012580239
+ - 0.038578913
+ - 0.07437787
+ - 0.017532878
+ - 0.0049310923
+ - 0.053548377
+ - 0.55099964
+ - 0.0018774692
+ - 0.08258951
+ - 0.061123453
+ - 0.05907063
+ - 0.0028759085
+ - 0.001197061
+ laughterScore: 0
+ - frameNumber: 1303
+ frameDelay: 0
+ Visemes:
+ - 0.023170017
+ - 0.01873576
+ - 0.0009014614
+ - 0.04637348
+ - 0.059162706
+ - 0.01301902
+ - 0.0036264213
+ - 0.03761164
+ - 0.59633154
+ - 0.0013961165
+ - 0.064283565
+ - 0.076220945
+ - 0.05603401
+ - 0.0021754482
+ - 0.00095787644
+ laughterScore: 0
+ - frameNumber: 1304
+ frameDelay: 0
+ Visemes:
+ - 0.028660636
+ - 0.013302565
+ - 0.00065566256
+ - 0.07482225
+ - 0.04760178
+ - 0.009996432
+ - 0.0026202796
+ - 0.026428107
+ - 0.51062834
+ - 0.0010853077
+ - 0.07818934
+ - 0.15767868
+ - 0.04175607
+ - 0.0055264896
+ - 0.0010480487
+ laughterScore: 0
+ - frameNumber: 1305
+ frameDelay: 0
+ Visemes:
+ - 0.03460923
+ - 0.0094971005
+ - 0.00058940845
+ - 0.061591797
+ - 0.035482213
+ - 0.008321095
+ - 0.0019420969
+ - 0.018675571
+ - 0.36576584
+ - 0.00088221533
+ - 0.1207908
+ - 0.3012978
+ - 0.031341862
+ - 0.008320295
+ - 0.0008926557
+ laughterScore: 0
+ - frameNumber: 1306
+ frameDelay: 0
+ Visemes:
+ - 0.036265675
+ - 0.009611525
+ - 0.0030669712
+ - 0.043313317
+ - 0.051823337
+ - 0.0060257325
+ - 0.0013728187
+ - 0.013150028
+ - 0.2695205
+ - 0.0009078656
+ - 0.10477143
+ - 0.42702246
+ - 0.024576271
+ - 0.007734719
+ - 0.0008373367
+ laughterScore: 0
+ - frameNumber: 1307
+ frameDelay: 0
+ Visemes:
+ - 0.026483633
+ - 0.009383435
+ - 0.0037088932
+ - 0.03032269
+ - 0.3181334
+ - 0.004241024
+ - 0.00096136186
+ - 0.009206416
+ - 0.18935668
+ - 0.0007294654
+ - 0.075111635
+ - 0.30796877
+ - 0.017356094
+ - 0.006062704
+ - 0.00097377587
+ laughterScore: 0
+ - frameNumber: 1308
+ frameDelay: 0
+ Visemes:
+ - 0.019360634
+ - 0.009520227
+ - 0.0037745764
+ - 0.021234028
+ - 0.51256794
+ - 0.0030038054
+ - 0.0006748346
+ - 0.0064494093
+ - 0.13281648
+ - 0.000575169
+ - 0.052926175
+ - 0.21564393
+ - 0.012179294
+ - 0.004563639
+ - 0.0047098403
+ laughterScore: 0
+ - frameNumber: 1309
+ frameDelay: 0
+ Visemes:
+ - 0.015708013
+ - 0.011674284
+ - 0.0028865375
+ - 0.014892699
+ - 0.61621255
+ - 0.0023403398
+ - 0.00048677478
+ - 0.004546666
+ - 0.09320684
+ - 0.00045380846
+ - 0.037544947
+ - 0.15109555
+ - 0.008588807
+ - 0.0034053791
+ - 0.036956802
+ laughterScore: 0
+ - frameNumber: 1310
+ frameDelay: 0
+ Visemes:
+ - 0.013129223
+ - 0.008207956
+ - 0.002029188
+ - 0.01043079
+ - 0.43216884
+ - 0.00172434
+ - 0.00034133875
+ - 0.003194473
+ - 0.06529626
+ - 0.0003410408
+ - 0.026634403
+ - 0.105780356
+ - 0.006037645
+ - 0.0026815138
+ - 0.32200262
+ laughterScore: 0
+ - frameNumber: 1311
+ frameDelay: 0
+ Visemes:
+ - 0.013941292
+ - 0.005765928
+ - 0.0014253383
+ - 0.0073120706
+ - 0.3026252
+ - 0.0013135347
+ - 0.00023971195
+ - 0.002243003
+ - 0.045746416
+ - 0.013812959
+ - 0.022832938
+ - 0.088474415
+ - 0.014938258
+ - 0.0026762132
+ - 0.47665268
+ laughterScore: 0
+ - frameNumber: 1312
+ frameDelay: 0
+ Visemes:
+ - 0.010654053
+ - 0.004037846
+ - 0.0009985649
+ - 0.0051214206
+ - 0.21184641
+ - 0.0009213604
+ - 0.00016784435
+ - 0.0015715386
+ - 0.03202446
+ - 0.2640148
+ - 0.016401784
+ - 0.08344747
+ - 0.029271295
+ - 0.002487591
+ - 0.33703357
+ laughterScore: 0
+ - frameNumber: 1313
+ frameDelay: 0
+ Visemes:
+ - 0.009135587
+ - 0.0028299938
+ - 0.0007008924
+ - 0.0035895258
+ - 0.14831083
+ - 0.00064908917
+ - 0.00011758545
+ - 0.0011023395
+ - 0.022425197
+ - 0.4531122
+ - 0.011793974
+ - 0.07603928
+ - 0.03204849
+ - 0.0018556513
+ - 0.23628937
+ laughterScore: 0
+ - frameNumber: 1314
+ frameDelay: 0
+ Visemes:
+ - 0.009063825
+ - 0.0020299414
+ - 0.0005001659
+ - 0.0025411756
+ - 0.10394971
+ - 0.00047818865
+ - 0.00008266868
+ - 0.0007817927
+ - 0.015750924
+ - 0.6049117
+ - 0.008410391
+ - 0.05686313
+ - 0.027542274
+ - 0.0013508936
+ - 0.16574325
+ laughterScore: 0
+ - frameNumber: 1315
+ frameDelay: 0
+ Visemes:
+ - 0.0068965196
+ - 0.0014812571
+ - 0.00035687705
+ - 0.0017958892
+ - 0.0729115
+ - 0.00037584314
+ - 0.000058011894
+ - 0.0005603768
+ - 0.01106011
+ - 0.7220749
+ - 0.005921442
+ - 0.039935935
+ - 0.019517237
+ - 0.00095020706
+ - 0.11610387
+ laughterScore: 0
+ - frameNumber: 1316
+ frameDelay: 0
+ Visemes:
+ - 0.0060380436
+ - 0.0010721025
+ - 0.00025932898
+ - 0.001314807
+ - 0.05137599
+ - 0.00041476198
+ - 0.000040978633
+ - 0.00041591036
+ - 0.0077854167
+ - 0.8020034
+ - 0.0041984967
+ - 0.028321639
+ - 0.014718479
+ - 0.0006830979
+ - 0.08135755
+ laughterScore: 0
+ - frameNumber: 1317
+ frameDelay: 0
+ Visemes:
+ - 0.00937624
+ - 0.00082878675
+ - 0.0001952922
+ - 0.0016051519
+ - 0.05119867
+ - 0.14333424
+ - 0.0001565395
+ - 0.00034212015
+ - 0.0057346756
+ - 0.69440365
+ - 0.003006035
+ - 0.020361364
+ - 0.012004157
+ - 0.0004954169
+ - 0.056957703
+ laughterScore: 0
+ - frameNumber: 1318
+ frameDelay: 0
+ Visemes:
+ - 0.014039369
+ - 0.000759869
+ - 0.00014935232
+ - 0.0016023718
+ - 0.06980668
+ - 0.34613645
+ - 0.00059035537
+ - 0.00027502936
+ - 0.004179304
+ - 0.4963664
+ - 0.0021718529
+ - 0.014564262
+ - 0.009123402
+ - 0.0003593085
+ - 0.03987605
+ laughterScore: 0
+ - frameNumber: 1319
+ frameDelay: 0
+ Visemes:
+ - 0.017404357
+ - 0.0007629995
+ - 0.00011180336
+ - 0.0017712325
+ - 0.083520755
+ - 0.49560654
+ - 0.0009533133
+ - 0.00024218955
+ - 0.0029561117
+ - 0.34963936
+ - 0.0015603541
+ - 0.010330461
+ - 0.006957371
+ - 0.0002621969
+ - 0.027921045
+ laughterScore: 0
+ - frameNumber: 1320
+ frameDelay: 0
+ Visemes:
+ - 0.014363669
+ - 0.0012470363
+ - 0.000103242965
+ - 0.0014774842
+ - 0.074770056
+ - 0.62604773
+ - 0.0010291338
+ - 0.00024611098
+ - 0.0020802142
+ - 0.24549092
+ - 0.0011216445
+ - 0.007312128
+ - 0.004972077
+ - 0.00018969648
+ - 0.019548908
+ laughterScore: 0
+ - frameNumber: 1321
+ frameDelay: 0
+ Visemes:
+ - 0.011775199
+ - 0.00088352046
+ - 0.000118019845
+ - 0.0010795859
+ - 0.05382453
+ - 0.7341282
+ - 0.0007332562
+ - 0.0007505473
+ - 0.001460304
+ - 0.17200473
+ - 0.0007978986
+ - 0.005127181
+ - 0.0034964026
+ - 0.00013410112
+ - 0.013686548
+ laughterScore: 0
+ - frameNumber: 1322
+ frameDelay: 0
+ Visemes:
+ - 0.015143235
+ - 0.00066854025
+ - 0.000113944174
+ - 0.00093560317
+ - 0.04134028
+ - 0.8019213
+ - 0.0005233848
+ - 0.0006241001
+ - 0.0010438991
+ - 0.12108227
+ - 0.0007291652
+ - 0.0036195295
+ - 0.0025517126
+ - 0.00009784338
+ - 0.009605193
+ laughterScore: 0
+ - frameNumber: 1323
+ frameDelay: 0
+ Visemes:
+ - 0.025128586
+ - 0.00061790843
+ - 0.00009709981
+ - 0.00073490746
+ - 0.03510699
+ - 0.8398241
+ - 0.00039628614
+ - 0.00047842646
+ - 0.0007400773
+ - 0.0849153
+ - 0.00062360713
+ - 0.0025761432
+ - 0.0019413416
+ - 0.00007372531
+ - 0.0067455685
+ laughterScore: 0
+ - frameNumber: 1324
+ frameDelay: 0
+ Visemes:
+ - 0.044093974
+ - 0.00051980786
+ - 0.00008635226
+ - 0.00062592415
+ - 0.027774313
+ - 0.85728025
+ - 0.0002906706
+ - 0.00034509893
+ - 0.000532214
+ - 0.059489977
+ - 0.0005671832
+ - 0.0019271488
+ - 0.0016554099
+ - 0.000075151074
+ - 0.004736561
+ laughterScore: 0
+ - frameNumber: 1325
+ frameDelay: 0
+ Visemes:
+ - 0.08006029
+ - 0.00068303593
+ - 0.00013131477
+ - 0.0014062293
+ - 0.022819052
+ - 0.8416153
+ - 0.00023550683
+ - 0.00034781848
+ - 0.0004117536
+ - 0.041712385
+ - 0.0020310252
+ - 0.0019150575
+ - 0.002929458
+ - 0.0003027713
+ - 0.0033989875
+ laughterScore: 0
+ - frameNumber: 1326
+ frameDelay: 0
+ Visemes:
+ - 0.23023465
+ - 0.01614146
+ - 0.004064439
+ - 0.017327167
+ - 0.025438776
+ - 0.64327544
+ - 0.00035541918
+ - 0.0010539036
+ - 0.0010783443
+ - 0.029501222
+ - 0.011380943
+ - 0.003479742
+ - 0.006908586
+ - 0.0014936498
+ - 0.008266296
+ laughterScore: 0
+ - frameNumber: 1327
+ frameDelay: 0
+ Visemes:
+ - 0.20679048
+ - 0.03714519
+ - 0.012010425
+ - 0.015325582
+ - 0.018231966
+ - 0.45367378
+ - 0.00029790436
+ - 0.0014421109
+ - 0.0059318533
+ - 0.02236156
+ - 0.014581902
+ - 0.002717943
+ - 0.0061105303
+ - 0.021200292
+ - 0.18217851
+ laughterScore: 0
+ - frameNumber: 1328
+ frameDelay: 0
+ Visemes:
+ - 0.17702262
+ - 0.106862746
+ - 0.022965364
+ - 0.011293082
+ - 0.013141231
+ - 0.31962222
+ - 0.00024314213
+ - 0.0013145264
+ - 0.011105936
+ - 0.016695913
+ - 0.025563229
+ - 0.004958627
+ - 0.013927229
+ - 0.056951147
+ - 0.21833304
+ laughterScore: 0
+ - frameNumber: 1329
+ frameDelay: 0
+ Visemes:
+ - 0.14338247
+ - 0.07632009
+ - 0.016514556
+ - 0.007994592
+ - 0.009606177
+ - 0.22429986
+ - 0.00017629824
+ - 0.000931553
+ - 0.024560213
+ - 0.0129503375
+ - 0.08698216
+ - 0.04452475
+ - 0.010595683
+ - 0.11504397
+ - 0.22611734
+ laughterScore: 0
+ - frameNumber: 1330
+ frameDelay: 0
+ Visemes:
+ - 0.10965793
+ - 0.05347831
+ - 0.011586078
+ - 0.005664924
+ - 0.006913977
+ - 0.15725555
+ - 0.00012503433
+ - 0.00065495056
+ - 0.023749286
+ - 0.05920358
+ - 0.10513808
+ - 0.040204033
+ - 0.007773264
+ - 0.25088948
+ - 0.16770555
+ laughterScore: 0
+ - frameNumber: 1331
+ frameDelay: 0
+ Visemes:
+ - 0.08253557
+ - 0.037438817
+ - 0.008112765
+ - 0.0039950944
+ - 0.0049360143
+ - 0.11023444
+ - 0.00009094094
+ - 0.00046374722
+ - 0.01706364
+ - 0.29069957
+ - 0.07694488
+ - 0.034748748
+ - 0.005913258
+ - 0.20825411
+ - 0.11856841
+ laughterScore: 0
+ - frameNumber: 1332
+ frameDelay: 0
+ Visemes:
+ - 0.061317854
+ - 0.026219502
+ - 0.005684598
+ - 0.0028661548
+ - 0.0042621405
+ - 0.07721419
+ - 0.00006691578
+ - 0.0003332559
+ - 0.012067894
+ - 0.4254991
+ - 0.056180965
+ - 0.024648331
+ - 0.0049297055
+ - 0.21543281
+ - 0.08327659
+ laughterScore: 0
+ - frameNumber: 1333
+ frameDelay: 0
+ Visemes:
+ - 0.050376076
+ - 0.018402122
+ - 0.0040093646
+ - 0.0021268046
+ - 0.006278525
+ - 0.057681978
+ - 0.00010071472
+ - 0.00034909052
+ - 0.009524819
+ - 0.54113925
+ - 0.055155363
+ - 0.018716617
+ - 0.013922778
+ - 0.16383228
+ - 0.05838427
+ laughterScore: 0
+ - frameNumber: 1334
+ frameDelay: 0
+ Visemes:
+ - 0.040255066
+ - 0.012925543
+ - 0.002833662
+ - 0.0015365016
+ - 0.007175044
+ - 0.17290471
+ - 0.00035460998
+ - 0.00036971242
+ - 0.006974437
+ - 0.4245882
+ - 0.04471218
+ - 0.01349719
+ - 0.11618826
+ - 0.11479456
+ - 0.040890332
+ laughterScore: 0
+ - frameNumber: 1335
+ frameDelay: 0
+ Visemes:
+ - 0.030845959
+ - 0.009087655
+ - 0.0020208352
+ - 0.001159967
+ - 0.010369077
+ - 0.3858797
+ - 0.001930594
+ - 0.00038040284
+ - 0.0051399237
+ - 0.30916107
+ - 0.031742677
+ - 0.00955955
+ - 0.09360221
+ - 0.08040166
+ - 0.028718725
+ laughterScore: 0
+ - frameNumber: 1336
+ frameDelay: 0
+ Visemes:
+ - 0.02261664
+ - 0.006366077
+ - 0.0014256479
+ - 0.0008585727
+ - 0.008066826
+ - 0.5624633
+ - 0.0019657938
+ - 0.0003066635
+ - 0.0036228686
+ - 0.2173067
+ - 0.02226089
+ - 0.0067052734
+ - 0.069628336
+ - 0.05628651
+ - 0.020119965
+ laughterScore: 0
+ - frameNumber: 1337
+ frameDelay: 0
+ Visemes:
+ - 0.028080866
+ - 0.0049429005
+ - 0.0014622542
+ - 0.0025389327
+ - 0.11863187
+ - 0.51330423
+ - 0.018301224
+ - 0.015920913
+ - 0.0040099886
+ - 0.1592228
+ - 0.017980892
+ - 0.0050409934
+ - 0.056319356
+ - 0.03975072
+ - 0.014492097
+ laughterScore: 0
+ - frameNumber: 1338
+ frameDelay: 0
+ Visemes:
+ - 0.048808087
+ - 0.005425227
+ - 0.003395164
+ - 0.004831954
+ - 0.15361181
+ - 0.43572676
+ - 0.016401049
+ - 0.10883312
+ - 0.004312467
+ - 0.11507946
+ - 0.014818516
+ - 0.004028808
+ - 0.04575795
+ - 0.02806987
+ - 0.01089975
+ laughterScore: 0
+ - frameNumber: 1339
+ frameDelay: 0
+ Visemes:
+ - 0.062691905
+ - 0.010681506
+ - 0.004238624
+ - 0.061378814
+ - 0.17223737
+ - 0.32339615
+ - 0.018860416
+ - 0.17699757
+ - 0.005334642
+ - 0.08220591
+ - 0.012615975
+ - 0.00393503
+ - 0.037518166
+ - 0.019706842
+ - 0.008201091
+ laughterScore: 0
+ - frameNumber: 1340
+ frameDelay: 0
+ Visemes:
+ - 0.053986676
+ - 0.011589957
+ - 0.0041504884
+ - 0.15336818
+ - 0.20231575
+ - 0.2282907
+ - 0.013526026
+ - 0.1266125
+ - 0.010402978
+ - 0.057660922
+ - 0.02043229
+ - 0.044503126
+ - 0.053355593
+ - 0.013969216
+ - 0.0058356123
+ laughterScore: 0
+ - frameNumber: 1341
+ frameDelay: 0
+ Visemes:
+ - 0.04566674
+ - 0.009417611
+ - 0.0029709884
+ - 0.11423692
+ - 0.15615664
+ - 0.15992838
+ - 0.009587386
+ - 0.08866914
+ - 0.01377205
+ - 0.04041916
+ - 0.02053501
+ - 0.20411733
+ - 0.120537385
+ - 0.009804021
+ - 0.0041812784
+ laughterScore: 0
+ - frameNumber: 1342
+ frameDelay: 0
+ Visemes:
+ - 0.04231701
+ - 0.0070923227
+ - 0.0020967582
+ - 0.080223516
+ - 0.110303804
+ - 0.11249157
+ - 0.0067825355
+ - 0.06208861
+ - 0.01571657
+ - 0.028344996
+ - 0.02369409
+ - 0.3532791
+ - 0.14545894
+ - 0.006906715
+ - 0.0032034982
+ laughterScore: 0
+ - frameNumber: 1343
+ frameDelay: 0
+ Visemes:
+ - 0.036533028
+ - 0.006030763
+ - 0.0014722428
+ - 0.05638291
+ - 0.0777407
+ - 0.08058188
+ - 0.0047534117
+ - 0.043486074
+ - 0.023184486
+ - 0.020039873
+ - 0.080247395
+ - 0.44699404
+ - 0.115275145
+ - 0.0048881005
+ - 0.0023900298
+ laughterScore: 0
+ - frameNumber: 1344
+ frameDelay: 0
+ Visemes:
+ - 0.035714544
+ - 0.033925544
+ - 0.0010557342
+ - 0.039521605
+ - 0.056607515
+ - 0.063116685
+ - 0.0033331816
+ - 0.030546287
+ - 0.03146695
+ - 0.014350582
+ - 0.1224448
+ - 0.4720496
+ - 0.09043234
+ - 0.0036267461
+ - 0.0018079239
+ laughterScore: 0
+ - frameNumber: 1345
+ frameDelay: 0
+ Visemes:
+ - 0.027169546
+ - 0.29864615
+ - 0.000858187
+ - 0.027677761
+ - 0.041657284
+ - 0.048086934
+ - 0.002336471
+ - 0.021464776
+ - 0.033196695
+ - 0.010223816
+ - 0.08773003
+ - 0.33296576
+ - 0.06414088
+ - 0.0025459467
+ - 0.001299806
+ laughterScore: 0
+ - frameNumber: 1346
+ frameDelay: 0
+ Visemes:
+ - 0.021120843
+ - 0.46648592
+ - 0.00065832323
+ - 0.019404119
+ - 0.037900824
+ - 0.03796295
+ - 0.0016428553
+ - 0.015071489
+ - 0.050009288
+ - 0.00718924
+ - 0.061691437
+ - 0.23319085
+ - 0.044952802
+ - 0.0017857518
+ - 0.0009333609
+ laughterScore: 0
+ - frameNumber: 1347
+ frameDelay: 0
+ Visemes:
+ - 0.021706615
+ - 0.548428
+ - 0.008692244
+ - 0.015825033
+ - 0.03838674
+ - 0.030031137
+ - 0.0012379863
+ - 0.011335828
+ - 0.07621974
+ - 0.005131206
+ - 0.044493772
+ - 0.1634522
+ - 0.033087503
+ - 0.0012826015
+ - 0.0006893729
+ laughterScore: 0
+ - frameNumber: 1348
+ frameDelay: 0
+ Visemes:
+ - 0.03286959
+ - 0.59764916
+ - 0.019459639
+ - 0.019719193
+ - 0.04737786
+ - 0.038988028
+ - 0.0012338243
+ - 0.008624731
+ - 0.057797454
+ - 0.0036781773
+ - 0.031960282
+ - 0.11496006
+ - 0.024148889
+ - 0.0009863724
+ - 0.00054666057
+ laughterScore: 0
+ - frameNumber: 1349
+ frameDelay: 0
+ Visemes:
+ - 0.051691644
+ - 0.61267126
+ - 0.027568724
+ - 0.033441313
+ - 0.048851125
+ - 0.04961433
+ - 0.0011345866
+ - 0.00670353
+ - 0.043061238
+ - 0.0026663064
+ - 0.023177804
+ - 0.08062504
+ - 0.017368687
+ - 0.0008940106
+ - 0.0005303227
+ laughterScore: 0
+ - frameNumber: 1350
+ frameDelay: 0
+ Visemes:
+ - 0.054169208
+ - 0.62403154
+ - 0.055288833
+ - 0.03272044
+ - 0.035560653
+ - 0.035795335
+ - 0.0008067256
+ - 0.0048056035
+ - 0.033314638
+ - 0.0025831051
+ - 0.018108737
+ - 0.056633215
+ - 0.013197327
+ - 0.017416343
+ - 0.015568246
+ laughterScore: 0
+ - frameNumber: 1351
+ frameDelay: 0
+ Visemes:
+ - 0.05339791
+ - 0.62261224
+ - 0.04502343
+ - 0.02345064
+ - 0.025324842
+ - 0.025769593
+ - 0.0005809543
+ - 0.003460296
+ - 0.034417875
+ - 0.0050955745
+ - 0.07100216
+ - 0.04021193
+ - 0.012711886
+ - 0.023220066
+ - 0.0137206055
+ laughterScore: 0
+ - frameNumber: 1352
+ frameDelay: 0
+ Visemes:
+ - 0.06363203
+ - 0.44392213
+ - 0.046458445
+ - 0.016489428
+ - 0.020955794
+ - 0.01831205
+ - 0.00041595518
+ - 0.0024464035
+ - 0.075129144
+ - 0.0064677875
+ - 0.1126732
+ - 0.029658476
+ - 0.011334106
+ - 0.13935812
+ - 0.012746945
+ laughterScore: 0
+ - frameNumber: 1353
+ frameDelay: 0
+ Visemes:
+ - 0.09288105
+ - 0.3204329
+ - 0.038244326
+ - 0.011651287
+ - 0.021038326
+ - 0.013751059
+ - 0.00033083616
+ - 0.0018365798
+ - 0.14036372
+ - 0.010547702
+ - 0.14227834
+ - 0.021630505
+ - 0.008473329
+ - 0.15353337
+ - 0.023006659
+ laughterScore: 0
+ - frameNumber: 1354
+ frameDelay: 0
+ Visemes:
+ - 0.10660159
+ - 0.22615872
+ - 0.028682228
+ - 0.00830025
+ - 0.020915354
+ - 0.0102235945
+ - 0.00024913327
+ - 0.0013570096
+ - 0.1440554
+ - 0.009263465
+ - 0.19123058
+ - 0.017794177
+ - 0.006783707
+ - 0.2003572
+ - 0.028027564
+ laughterScore: 0
+ - frameNumber: 1355
+ frameDelay: 0
+ Visemes:
+ - 0.09025629
+ - 0.1599449
+ - 0.020277478
+ - 0.005904173
+ - 0.017408216
+ - 0.0073601557
+ - 0.00017852827
+ - 0.0010563836
+ - 0.1966709
+ - 0.008156471
+ - 0.17367923
+ - 0.012650761
+ - 0.0048765326
+ - 0.28108662
+ - 0.020493321
+ laughterScore: 0
+ - frameNumber: 1356
+ frameDelay: 0
+ Visemes:
+ - 0.085471295
+ - 0.11608898
+ - 0.015614787
+ - 0.0047899983
+ - 0.020702433
+ - 0.005887363
+ - 0.00017405894
+ - 0.0014521969
+ - 0.3295461
+ - 0.009996712
+ - 0.13979185
+ - 0.008989159
+ - 0.00377599
+ - 0.24225852
+ - 0.015460561
+ laughterScore: 0
+ - frameNumber: 1357
+ frameDelay: 0
+ Visemes:
+ - 0.09999569
+ - 0.08728666
+ - 0.018102605
+ - 0.0071890485
+ - 0.055287305
+ - 0.009059954
+ - 0.00034609778
+ - 0.0038916217
+ - 0.39330775
+ - 0.014504399
+ - 0.10711277
+ - 0.006495616
+ - 0.0034223318
+ - 0.18199866
+ - 0.011999516
+ laughterScore: 0
+ - frameNumber: 1358
+ frameDelay: 0
+ Visemes:
+ - 0.10552561
+ - 0.068843424
+ - 0.02275025
+ - 0.0063287304
+ - 0.10338564
+ - 0.087067045
+ - 0.00035314157
+ - 0.00555518
+ - 0.3631462
+ - 0.011218831
+ - 0.07893835
+ - 0.004662604
+ - 0.0030908557
+ - 0.13059905
+ - 0.008535094
+ laughterScore: 0
+ - frameNumber: 1359
+ frameDelay: 0
+ Visemes:
+ - 0.100431725
+ - 0.054130554
+ - 0.01724615
+ - 0.0047402116
+ - 0.091147035
+ - 0.2944546
+ - 0.0005093966
+ - 0.0043890756
+ - 0.26447183
+ - 0.00826804
+ - 0.05639792
+ - 0.0034103242
+ - 0.0022991262
+ - 0.09208158
+ - 0.006022453
+ laughterScore: 0
+ - frameNumber: 1360
+ frameDelay: 0
+ Visemes:
+ - 0.105656065
+ - 0.039459366
+ - 0.012236032
+ - 0.0033605306
+ - 0.06562767
+ - 0.46414164
+ - 0.00038697894
+ - 0.003133367
+ - 0.18698373
+ - 0.005878054
+ - 0.03996081
+ - 0.002395488
+ - 0.0016400127
+ - 0.06491762
+ - 0.004222636
+ laughterScore: 0
+ - frameNumber: 1361
+ frameDelay: 0
+ Visemes:
+ - 0.12083781
+ - 0.027936762
+ - 0.008604399
+ - 0.0024221886
+ - 0.046888966
+ - 0.57117635
+ - 0.00028021517
+ - 0.002251733
+ - 0.13474876
+ - 0.004155096
+ - 0.02853022
+ - 0.0016969529
+ - 0.0012458886
+ - 0.046229135
+ - 0.0029955672
+ laughterScore: 0
+ - frameNumber: 1362
+ frameDelay: 0
+ Visemes:
+ - 0.2091055
+ - 0.020525044
+ - 0.0060894894
+ - 0.0019354958
+ - 0.03455906
+ - 0.56590414
+ - 0.00039345134
+ - 0.0017774345
+ - 0.09564839
+ - 0.0029849713
+ - 0.020713015
+ - 0.0015909773
+ - 0.0016468674
+ - 0.034808077
+ - 0.0023181266
+ laughterScore: 0
+ - frameNumber: 1363
+ frameDelay: 0
+ Visemes:
+ - 0.40854365
+ - 0.01547009
+ - 0.0043341517
+ - 0.0018911918
+ - 0.025813067
+ - 0.42615944
+ - 0.0003726989
+ - 0.00137853
+ - 0.06750201
+ - 0.0021544204
+ - 0.015971089
+ - 0.0013770487
+ - 0.0016163265
+ - 0.025477119
+ - 0.0019391632
+ laughterScore: 0
+ - frameNumber: 1364
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1365
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1366
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1367
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1368
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1369
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1370
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1371
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1372
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1373
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1374
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1375
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1376
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1377
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1378
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1379
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1380
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1381
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1382
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1383
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1384
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1385
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1386
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1387
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1388
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1389
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1390
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1391
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1392
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1393
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1394
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1395
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1396
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1397
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1398
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1399
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1400
+ frameDelay: 0
+ Visemes:
+ - 0.40231508
+ - 0.012121885
+ - 0.00021421068
+ - 0.016491452
+ - 0.014622609
+ - 0.040401377
+ - 0.009405596
+ - 0.0014480894
+ - 0.0045841737
+ - 0.00018694128
+ - 0.00771501
+ - 0.3389134
+ - 0.14976808
+ - 0.0010078151
+ - 0.0008043178
+ laughterScore: 0
+ - frameNumber: 1401
+ frameDelay: 0
+ Visemes:
+ - 0.28655696
+ - 0.008583151
+ - 0.00032390357
+ - 0.011765443
+ - 0.013444288
+ - 0.046516333
+ - 0.006636044
+ - 0.001031989
+ - 0.004023904
+ - 0.00034752162
+ - 0.0116079915
+ - 0.40504554
+ - 0.20151737
+ - 0.0013847575
+ - 0.0012148651
+ laughterScore: 0
+ - frameNumber: 1402
+ frameDelay: 0
+ Visemes:
+ - 0.2101282
+ - 0.006856123
+ - 0.0008821767
+ - 0.010878272
+ - 0.05739034
+ - 0.24354494
+ - 0.0049690064
+ - 0.0008762976
+ - 0.010366111
+ - 0.0004797725
+ - 0.011188302
+ - 0.29718077
+ - 0.14322555
+ - 0.0010597755
+ - 0.00097441534
+ laughterScore: 0
+ - frameNumber: 1403
+ frameDelay: 0
+ Visemes:
+ - 0.15693852
+ - 0.005684613
+ - 0.0012453175
+ - 0.008444035
+ - 0.08107822
+ - 0.40905
+ - 0.0040522153
+ - 0.00086359045
+ - 0.009781461
+ - 0.00051928527
+ - 0.008734169
+ - 0.21074039
+ - 0.10118162
+ - 0.0008987343
+ - 0.0007878905
+ laughterScore: 0
+ - frameNumber: 1404
+ frameDelay: 0
+ Visemes:
+ - 0.11861635
+ - 0.03314973
+ - 0.0020152328
+ - 0.009585552
+ - 0.09619408
+ - 0.49875972
+ - 0.004601992
+ - 0.0011900035
+ - 0.0075672767
+ - 0.0005005694
+ - 0.006617867
+ - 0.14797835
+ - 0.071371235
+ - 0.0007756262
+ - 0.0010764229
+ laughterScore: 0
+ - frameNumber: 1405
+ frameDelay: 0
+ Visemes:
+ - 0.117233194
+ - 0.054212965
+ - 0.014078635
+ - 0.008030516
+ - 0.09622916
+ - 0.5223568
+ - 0.004390036
+ - 0.015589742
+ - 0.0060532615
+ - 0.00045535812
+ - 0.0051511014
+ - 0.1039359
+ - 0.050747745
+ - 0.00065102096
+ - 0.00088456075
+ laughterScore: 0
+ - frameNumber: 1406
+ frameDelay: 0
+ Visemes:
+ - 0.109615535
+ - 0.06419109
+ - 0.01185804
+ - 0.0059735314
+ - 0.07253851
+ - 0.598094
+ - 0.0036888025
+ - 0.01442375
+ - 0.0044867615
+ - 0.00053467444
+ - 0.003903155
+ - 0.072979994
+ - 0.03639018
+ - 0.0005088477
+ - 0.0008131162
+ laughterScore: 0
+ - frameNumber: 1407
+ frameDelay: 0
+ Visemes:
+ - 0.08647159
+ - 0.045674734
+ - 0.008326859
+ - 0.00469128
+ - 0.051975824
+ - 0.6483948
+ - 0.0027421513
+ - 0.010370528
+ - 0.003855622
+ - 0.00046661258
+ - 0.029901065
+ - 0.07558417
+ - 0.028415564
+ - 0.0017221107
+ - 0.0014070601
+ laughterScore: 0
+ - frameNumber: 1408
+ frameDelay: 0
+ Visemes:
+ - 0.07578865
+ - 0.03199778
+ - 0.0058470266
+ - 0.0034618303
+ - 0.036496725
+ - 0.4587028
+ - 0.0020453827
+ - 0.007411231
+ - 0.0029704273
+ - 0.0005491684
+ - 0.08002499
+ - 0.24538264
+ - 0.029157199
+ - 0.017968422
+ - 0.0021957434
+ laughterScore: 0
+ - frameNumber: 1409
+ frameDelay: 0
+ Visemes:
+ - 0.06543196
+ - 0.02294834
+ - 0.004099982
+ - 0.0025342077
+ - 0.026547091
+ - 0.32123446
+ - 0.0015093117
+ - 0.0052530235
+ - 0.008641937
+ - 0.0036838935
+ - 0.07811458
+ - 0.38934982
+ - 0.034285296
+ - 0.031385034
+ - 0.0049810726
+ laughterScore: 0
+ - frameNumber: 1410
+ frameDelay: 0
+ Visemes:
+ - 0.051616054
+ - 0.018716095
+ - 0.0029022715
+ - 0.0018304974
+ - 0.024981288
+ - 0.22525124
+ - 0.001090056
+ - 0.0038536845
+ - 0.269414
+ - 0.0032787917
+ - 0.057873867
+ - 0.28662273
+ - 0.026365217
+ - 0.022220183
+ - 0.0039840126
+ laughterScore: 0
+ - frameNumber: 1411
+ frameDelay: 0
+ Visemes:
+ - 0.04229338
+ - 0.022374753
+ - 0.0020665878
+ - 0.0013583916
+ - 0.037015848
+ - 0.15839544
+ - 0.0008031826
+ - 0.0027788426
+ - 0.45129627
+ - 0.0023669142
+ - 0.04071797
+ - 0.2014326
+ - 0.018536929
+ - 0.015640413
+ - 0.0029224767
+ laughterScore: 0
+ - frameNumber: 1412
+ frameDelay: 0
+ Visemes:
+ - 0.046428815
+ - 0.017215014
+ - 0.0016378795
+ - 0.0015603513
+ - 0.07438852
+ - 0.115328416
+ - 0.0006345018
+ - 0.0020222121
+ - 0.53796196
+ - 0.0021874227
+ - 0.030499985
+ - 0.14125298
+ - 0.0142042935
+ - 0.012005772
+ - 0.0026719435
+ laughterScore: 0
+ - frameNumber: 1413
+ frameDelay: 0
+ Visemes:
+ - 0.045232587
+ - 0.017080352
+ - 0.0012016151
+ - 0.0011688771
+ - 0.05713505
+ - 0.083867125
+ - 0.00044994344
+ - 0.0014470926
+ - 0.5163488
+ - 0.0017473632
+ - 0.110456936
+ - 0.098990194
+ - 0.010436339
+ - 0.05233082
+ - 0.0021069928
+ laughterScore: 0
+ - frameNumber: 1414
+ frameDelay: 0
+ Visemes:
+ - 0.0433075
+ - 0.014939649
+ - 0.0009250969
+ - 0.000854952
+ - 0.0438312
+ - 0.06042734
+ - 0.0003175586
+ - 0.0010286795
+ - 0.3992069
+ - 0.0014620067
+ - 0.13412382
+ - 0.070075236
+ - 0.007818279
+ - 0.21975188
+ - 0.0019299347
+ laughterScore: 0
+ - frameNumber: 1415
+ frameDelay: 0
+ Visemes:
+ - 0.033582594
+ - 0.010591512
+ - 0.0006618527
+ - 0.000600158
+ - 0.030812118
+ - 0.04246754
+ - 0.00022260776
+ - 0.00072140933
+ - 0.27981254
+ - 0.0010420606
+ - 0.19039235
+ - 0.04914296
+ - 0.005600956
+ - 0.3528892
+ - 0.0014601265
+ laughterScore: 0
+ - frameNumber: 1416
+ frameDelay: 0
+ Visemes:
+ - 0.02475606
+ - 0.007423247
+ - 0.00046816317
+ - 0.00042075446
+ - 0.021584332
+ - 0.029766735
+ - 0.00015602379
+ - 0.0005052758
+ - 0.19610602
+ - 0.0007318234
+ - 0.1742438
+ - 0.03445728
+ - 0.003961331
+ - 0.50437444
+ - 0.0010447243
+ laughterScore: 0
+ - frameNumber: 1417
+ frameDelay: 0
+ Visemes:
+ - 0.018924808
+ - 0.005209384
+ - 0.00034310544
+ - 0.00029611727
+ - 0.015139014
+ - 0.020858366
+ - 0.00010946062
+ - 0.00035446245
+ - 0.13873762
+ - 0.00051977445
+ - 0.13951093
+ - 0.024245428
+ - 0.0028014309
+ - 0.63216615
+ - 0.000783929
+ laughterScore: 0
+ - frameNumber: 1418
+ frameDelay: 0
+ Visemes:
+ - 0.015961012
+ - 0.003670767
+ - 0.0002683126
+ - 0.00020982718
+ - 0.010719651
+ - 0.014651982
+ - 0.00007817397
+ - 0.00025444556
+ - 0.10468581
+ - 0.00040314224
+ - 0.122250676
+ - 0.01705794
+ - 0.0019715412
+ - 0.70720947
+ - 0.0006071783
+ laughterScore: 0
+ - frameNumber: 1419
+ frameDelay: 0
+ Visemes:
+ - 0.015214475
+ - 0.0029734843
+ - 0.0005903361
+ - 0.00018089164
+ - 0.008230207
+ - 0.010604716
+ - 0.00007392234
+ - 0.0002539276
+ - 0.24684635
+ - 0.00052309263
+ - 0.09399735
+ - 0.01211785
+ - 0.0014159854
+ - 0.60575825
+ - 0.0012190817
+ laughterScore: 0
+ - frameNumber: 1420
+ frameDelay: 0
+ Visemes:
+ - 0.011820246
+ - 0.0024572783
+ - 0.002855156
+ - 0.00026960275
+ - 0.0059394073
+ - 0.0074501513
+ - 0.00007356873
+ - 0.0022879913
+ - 0.4088955
+ - 0.00075346197
+ - 0.071902044
+ - 0.009072259
+ - 0.00101737
+ - 0.4743309
+ - 0.00087504584
+ laughterScore: 0
+ - frameNumber: 1421
+ frameDelay: 0
+ Visemes:
+ - 0.010152178
+ - 0.0031166868
+ - 0.0037668503
+ - 0.0003452851
+ - 0.0082656685
+ - 0.0052507455
+ - 0.00012134003
+ - 0.12328666
+ - 0.4523515
+ - 0.0007148485
+ - 0.05178131
+ - 0.0063704476
+ - 0.00077560527
+ - 0.3330791
+ - 0.00062174216
+ laughterScore: 0
+ - frameNumber: 1422
+ frameDelay: 0
+ Visemes:
+ - 0.009463219
+ - 0.0030973747
+ - 0.0030182495
+ - 0.00040363282
+ - 0.007314403
+ - 0.0036988924
+ - 0.00015568075
+ - 0.3791666
+ - 0.3180404
+ - 0.0005201981
+ - 0.036360323
+ - 0.004462322
+ - 0.0005811733
+ - 0.23326674
+ - 0.0004507921
+ laughterScore: 0
+ - frameNumber: 1423
+ frameDelay: 0
+ Visemes:
+ - 0.009007502
+ - 0.0023857444
+ - 0.0023068744
+ - 0.00046165127
+ - 0.0091513
+ - 0.0026547862
+ - 0.00013559309
+ - 0.5577131
+ - 0.22290254
+ - 0.0003701948
+ - 0.02551716
+ - 0.0031283102
+ - 0.0005136139
+ - 0.16340725
+ - 0.0003444116
+ laughterScore: 0
+ - frameNumber: 1424
+ frameDelay: 0
+ Visemes:
+ - 0.010190153
+ - 0.0019243754
+ - 0.0019570356
+ - 0.0017152743
+ - 0.025996648
+ - 0.0026635427
+ - 0.00011214719
+ - 0.66231036
+ - 0.1569065
+ - 0.00027164465
+ - 0.018026888
+ - 0.0022139216
+ - 0.0006430963
+ - 0.11465899
+ - 0.00040941575
+ laughterScore: 0
+ - frameNumber: 1425
+ frameDelay: 0
+ Visemes:
+ - 0.012934383
+ - 0.0015099712
+ - 0.0014309477
+ - 0.0042338455
+ - 0.02895835
+ - 0.0021691043
+ - 0.00009016389
+ - 0.67770565
+ - 0.11293418
+ - 0.0002621652
+ - 0.029822525
+ - 0.036462612
+ - 0.0050881742
+ - 0.08556838
+ - 0.000829515
+ laughterScore: 0
+ - frameNumber: 1426
+ frameDelay: 0
+ Visemes:
+ - 0.017517347
+ - 0.0012492654
+ - 0.0010600943
+ - 0.0037255925
+ - 0.02315025
+ - 0.0018347164
+ - 0.000101243655
+ - 0.4820173
+ - 0.079786584
+ - 0.002372933
+ - 0.06497949
+ - 0.05688382
+ - 0.035214826
+ - 0.2285739
+ - 0.0015325876
+ laughterScore: 0
+ - frameNumber: 1427
+ frameDelay: 0
+ Visemes:
+ - 0.019275144
+ - 0.0010109281
+ - 0.000829091
+ - 0.003262117
+ - 0.017918691
+ - 0.0014665904
+ - 0.00009166011
+ - 0.3377375
+ - 0.056760363
+ - 0.005010506
+ - 0.06957462
+ - 0.058830358
+ - 0.043895885
+ - 0.38174474
+ - 0.0025918055
+ laughterScore: 0
+ - frameNumber: 1428
+ frameDelay: 0
+ Visemes:
+ - 0.026234671
+ - 0.00092902326
+ - 0.002177237
+ - 0.024195073
+ - 0.016073313
+ - 0.002410865
+ - 0.00020022315
+ - 0.23667002
+ - 0.04416724
+ - 0.0065468485
+ - 0.062478382
+ - 0.049706645
+ - 0.041493315
+ - 0.48155338
+ - 0.005163788
+ laughterScore: 0
+ - frameNumber: 1429
+ frameDelay: 0
+ Visemes:
+ - 0.029035551
+ - 0.0048687197
+ - 0.013081432
+ - 0.02476805
+ - 0.027063958
+ - 0.0021114654
+ - 0.00023677312
+ - 0.1659705
+ - 0.041079983
+ - 0.011883383
+ - 0.08111398
+ - 0.04339059
+ - 0.07685727
+ - 0.47395098
+ - 0.004587381
+ laughterScore: 0
+ - frameNumber: 1430
+ frameDelay: 0
+ Visemes:
+ - 0.027817996
+ - 0.099490605
+ - 0.023691643
+ - 0.029491533
+ - 0.05062771
+ - 0.0021802296
+ - 0.00063830387
+ - 0.11641902
+ - 0.031358495
+ - 0.010659577
+ - 0.1593172
+ - 0.03050852
+ - 0.07026162
+ - 0.34374064
+ - 0.0037969616
+ laughterScore: 0
+ - frameNumber: 1431
+ frameDelay: 0
+ Visemes:
+ - 0.035221606
+ - 0.22469093
+ - 0.05413234
+ - 0.03053742
+ - 0.07606202
+ - 0.0025048542
+ - 0.0017911638
+ - 0.08202889
+ - 0.022703242
+ - 0.007792198
+ - 0.14471915
+ - 0.021492649
+ - 0.051784467
+ - 0.24146336
+ - 0.0030757799
+ laughterScore: 0
+ - frameNumber: 1432
+ frameDelay: 0
+ Visemes:
+ - 0.03731206
+ - 0.35571003
+ - 0.1029896
+ - 0.025406182
+ - 0.057899177
+ - 0.0019022753
+ - 0.0013572718
+ - 0.05794094
+ - 0.016297542
+ - 0.0057607507
+ - 0.11110729
+ - 0.015099953
+ - 0.039302375
+ - 0.16911364
+ - 0.0028010316
+ laughterScore: 0
+ - frameNumber: 1433
+ frameDelay: 0
+ Visemes:
+ - 0.031734727
+ - 0.5183409
+ - 0.07972399
+ - 0.018791893
+ - 0.04070848
+ - 0.003025514
+ - 0.0009837167
+ - 0.040564306
+ - 0.011710288
+ - 0.0043427213
+ - 0.078359224
+ - 0.010694669
+ - 0.04058843
+ - 0.118381515
+ - 0.0020497693
+ laughterScore: 0
+ - frameNumber: 1434
+ frameDelay: 0
+ Visemes:
+ - 0.030864501
+ - 0.3678953
+ - 0.05628569
+ - 0.01330146
+ - 0.028641557
+ - 0.0032717143
+ - 0.00073175604
+ - 0.028404653
+ - 0.008399439
+ - 0.0032130005
+ - 0.05512825
+ - 0.007793442
+ - 0.31113836
+ - 0.082872145
+ - 0.002058827
+ laughterScore: 0
+ - frameNumber: 1435
+ frameDelay: 0
+ Visemes:
+ - 0.03506261
+ - 0.2632014
+ - 0.03970253
+ - 0.009363617
+ - 0.020200554
+ - 0.00395088
+ - 0.000558215
+ - 0.019903377
+ - 0.006039805
+ - 0.0023588466
+ - 0.039037604
+ - 0.005715748
+ - 0.49221832
+ - 0.058015093
+ - 0.004671496
+ laughterScore: 0
+ - frameNumber: 1436
+ frameDelay: 0
+ Visemes:
+ - 0.035383575
+ - 0.18662424
+ - 0.027916728
+ - 0.006578923
+ - 0.014263187
+ - 0.0042536063
+ - 0.00042892015
+ - 0.013955191
+ - 0.004331061
+ - 0.0017281454
+ - 0.027713468
+ - 0.0043190448
+ - 0.6275304
+ - 0.040612817
+ - 0.0043607485
+ laughterScore: 0
+ - frameNumber: 1437
+ frameDelay: 0
+ Visemes:
+ - 0.03138398
+ - 0.13085486
+ - 0.019718189
+ - 0.00466739
+ - 0.010317412
+ - 0.02721046
+ - 0.00046964313
+ - 0.009913623
+ - 0.0035648854
+ - 0.0012410629
+ - 0.01959939
+ - 0.0035736626
+ - 0.70471203
+ - 0.02843115
+ - 0.0043422803
+ laughterScore: 0
+ - frameNumber: 1438
+ frameDelay: 0
+ Visemes:
+ - 0.02755533
+ - 0.09172956
+ - 0.0138489
+ - 0.0033312314
+ - 0.007434324
+ - 0.09719862
+ - 0.00035929182
+ - 0.0069814185
+ - 0.0026279956
+ - 0.00089614425
+ - 0.013915232
+ - 0.002679889
+ - 0.7075508
+ - 0.019904371
+ - 0.0039868313
+ laughterScore: 0
+ - frameNumber: 1439
+ frameDelay: 0
+ Visemes:
+ - 0.029186614
+ - 0.064392835
+ - 0.009733298
+ - 0.0024128144
+ - 0.0055397656
+ - 0.1288841
+ - 0.0002911935
+ - 0.0049425205
+ - 0.001982538
+ - 0.0006892923
+ - 0.010254012
+ - 0.002464176
+ - 0.716277
+ - 0.013945371
+ - 0.009004403
+ laughterScore: 0
+ - frameNumber: 1440
+ frameDelay: 0
+ Visemes:
+ - 0.025481753
+ - 0.045134034
+ - 0.0068261176
+ - 0.0017159237
+ - 0.0040590195
+ - 0.09474669
+ - 0.00022600585
+ - 0.0034901951
+ - 0.0014439701
+ - 0.00064636604
+ - 0.0073939837
+ - 0.0020581763
+ - 0.77748895
+ - 0.009781044
+ - 0.019507755
+ laughterScore: 0
+ - frameNumber: 1441
+ frameDelay: 0
+ Visemes:
+ - 0.023736557
+ - 0.031672787
+ - 0.004814749
+ - 0.0013012545
+ - 0.0032655604
+ - 0.06773499
+ - 0.00019097212
+ - 0.0025265412
+ - 0.0011482586
+ - 0.000763312
+ - 0.005536406
+ - 0.0025027264
+ - 0.80505073
+ - 0.006910277
+ - 0.042844914
+ laughterScore: 0
+ - frameNumber: 1442
+ frameDelay: 0
+ Visemes:
+ - 0.019457495
+ - 0.022199681
+ - 0.0034550342
+ - 0.0009933512
+ - 0.0028038088
+ - 0.047569234
+ - 0.00015894866
+ - 0.0018087344
+ - 0.0009395573
+ - 0.0006503164
+ - 0.0040055662
+ - 0.0018914796
+ - 0.81928426
+ - 0.004847
+ - 0.06993555
+ laughterScore: 0
+ - frameNumber: 1443
+ frameDelay: 0
+ Visemes:
+ - 0.015702652
+ - 0.015554803
+ - 0.0025155982
+ - 0.00076404517
+ - 0.0022158986
+ - 0.033380188
+ - 0.00015482618
+ - 0.0013006849
+ - 0.0007245819
+ - 0.0005146965
+ - 0.002896963
+ - 0.0014058889
+ - 0.8145691
+ - 0.0034007982
+ - 0.10489928
+ laughterScore: 0
+ - frameNumber: 1444
+ frameDelay: 0
+ Visemes:
+ - 0.013143802
+ - 0.010901242
+ - 0.0018458217
+ - 0.00058172934
+ - 0.001726661
+ - 0.023447867
+ - 0.00012490682
+ - 0.0009569169
+ - 0.00056885846
+ - 0.00044087594
+ - 0.002211343
+ - 0.001107298
+ - 0.73858875
+ - 0.002402177
+ - 0.20195179
+ laughterScore: 0
+ - frameNumber: 1445
+ frameDelay: 0
+ Visemes:
+ - 0.010683618
+ - 0.007634673
+ - 0.0014299555
+ - 0.00046486894
+ - 0.0013786979
+ - 0.016482573
+ - 0.00011757459
+ - 0.0009453032
+ - 0.0004250917
+ - 0.00039519026
+ - 0.0017721459
+ - 0.00088305824
+ - 0.54827946
+ - 0.0017068838
+ - 0.40740094
+ laughterScore: 0
+ - frameNumber: 1446
+ frameDelay: 0
+ Visemes:
+ - 0.009399449
+ - 0.0053484715
+ - 0.0012934273
+ - 0.00043033878
+ - 0.0011661098
+ - 0.011574159
+ - 0.00021371031
+ - 0.012519824
+ - 0.00033103902
+ - 0.0017965343
+ - 0.00468404
+ - 0.0011606594
+ - 0.39570513
+ - 0.0012424388
+ - 0.5531347
+ laughterScore: 0
+ - frameNumber: 1447
+ frameDelay: 0
+ Visemes:
+ - 0.010049192
+ - 0.003780989
+ - 0.0019517906
+ - 0.0007409022
+ - 0.0018012171
+ - 0.008170244
+ - 0.00015460537
+ - 0.22542365
+ - 0.0004219843
+ - 0.0016510221
+ - 0.0077859387
+ - 0.0009241482
+ - 0.28788775
+ - 0.00089511846
+ - 0.4483615
+ laughterScore: 0
+ - frameNumber: 1448
+ frameDelay: 0
+ Visemes:
+ - 0.012196187
+ - 0.0028345855
+ - 0.0016360196
+ - 0.003956969
+ - 0.0027992858
+ - 0.0059303553
+ - 0.00011869247
+ - 0.43787062
+ - 0.0003856197
+ - 0.0012196449
+ - 0.0056513315
+ - 0.00068577094
+ - 0.20364055
+ - 0.0006413322
+ - 0.32043305
+ laughterScore: 0
+ - frameNumber: 1449
+ frameDelay: 0
+ Visemes:
+ - 0.01792625
+ - 0.0021610921
+ - 0.0012343469
+ - 0.0090281125
+ - 0.0070012184
+ - 0.0043808096
+ - 0.00013345602
+ - 0.58096427
+ - 0.00040206473
+ - 0.0008836872
+ - 0.0040763165
+ - 0.00053738104
+ - 0.14517087
+ - 0.0004826661
+ - 0.22561747
+ laughterScore: 0
+ - frameNumber: 1450
+ frameDelay: 0
+ Visemes:
+ - 0.029371377
+ - 0.001889651
+ - 0.0009480822
+ - 0.01443238
+ - 0.026896738
+ - 0.0037679
+ - 0.0001823678
+ - 0.65333503
+ - 0.00086639985
+ - 0.0006309832
+ - 0.003032481
+ - 0.0004149543
+ - 0.10499706
+ - 0.00044890656
+ - 0.15878572
+ laughterScore: 0
+ - frameNumber: 1451
+ frameDelay: 0
+ Visemes:
+ - 0.049128585
+ - 0.002915082
+ - 0.0007889376
+ - 0.020160832
+ - 0.05470082
+ - 0.00704516
+ - 0.0008674939
+ - 0.6696194
+ - 0.0031590885
+ - 0.0004643543
+ - 0.002451227
+ - 0.00039018673
+ - 0.076255515
+ - 0.00041098875
+ - 0.11164235
+ laughterScore: 0
+ - frameNumber: 1452
+ frameDelay: 0
+ Visemes:
+ - 0.040818647
+ - 0.002180948
+ - 0.00056643214
+ - 0.018581316
+ - 0.31757408
+ - 0.0064436835
+ - 0.0017433981
+ - 0.47426972
+ - 0.003133249
+ - 0.00033124097
+ - 0.0019603553
+ - 0.00028565017
+ - 0.05356341
+ - 0.00036493997
+ - 0.078182936
+ laughterScore: 0
+ - frameNumber: 1453
+ frameDelay: 0
+ Visemes:
+ - 0.030904124
+ - 0.0015444679
+ - 0.0004304439
+ - 0.014127445
+ - 0.5143034
+ - 0.0049199825
+ - 0.002009362
+ - 0.33367312
+ - 0.0022241143
+ - 0.00024556913
+ - 0.002201307
+ - 0.00021624265
+ - 0.03810928
+ - 0.00026343676
+ - 0.05482768
+ laughterScore: 0
+ - frameNumber: 1454
+ frameDelay: 0
+ Visemes:
+ - 0.026895074
+ - 0.0011714135
+ - 0.00033490622
+ - 0.010464521
+ - 0.5333041
+ - 0.00447669
+ - 0.0022850437
+ - 0.24029778
+ - 0.0016270548
+ - 0.00021336335
+ - 0.10827038
+ - 0.00056065613
+ - 0.030233119
+ - 0.0003616056
+ - 0.03950427
+ laughterScore: 0
+ - frameNumber: 1455
+ frameDelay: 0
+ Visemes:
+ - 0.020204876
+ - 0.000841089
+ - 0.0002456426
+ - 0.007503536
+ - 0.37943774
+ - 0.003259833
+ - 0.0020131245
+ - 0.16850153
+ - 0.0011740106
+ - 0.0010121687
+ - 0.2238183
+ - 0.0010260392
+ - 0.029309202
+ - 0.004517978
+ - 0.15713492
+ laughterScore: 0
+ - frameNumber: 1456
+ frameDelay: 0
+ Visemes:
+ - 0.015515201
+ - 0.00061067333
+ - 0.00018467398
+ - 0.005458338
+ - 0.26625308
+ - 0.0023434956
+ - 0.0014486976
+ - 0.117975615
+ - 0.0008824258
+ - 0.0020682132
+ - 0.40583402
+ - 0.0010628279
+ - 0.028433353
+ - 0.0041824365
+ - 0.14774692
+ laughterScore: 0
+ - frameNumber: 1457
+ frameDelay: 0
+ Visemes:
+ - 0.012165708
+ - 0.00044327724
+ - 0.0002185289
+ - 0.0064190133
+ - 0.22050458
+ - 0.0019755436
+ - 0.0016004764
+ - 0.082588114
+ - 0.0007700737
+ - 0.0062233745
+ - 0.5133644
+ - 0.0011437663
+ - 0.027731342
+ - 0.0030881613
+ - 0.12176367
+ laughterScore: 0
+ - frameNumber: 1458
+ frameDelay: 0
+ Visemes:
+ - 0.013015572
+ - 0.0005504634
+ - 0.0013594427
+ - 0.010259436
+ - 0.3291074
+ - 0.0023894794
+ - 0.021273365
+ - 0.057871778
+ - 0.000962278
+ - 0.00557246
+ - 0.43912476
+ - 0.0010891748
+ - 0.02547921
+ - 0.00222795
+ - 0.08971723
+ laughterScore: 0
+ - frameNumber: 1459
+ frameDelay: 0
+ Visemes:
+ - 0.021781173
+ - 0.003868598
+ - 0.0025901962
+ - 0.011146109
+ - 0.36085916
+ - 0.013004463
+ - 0.107932
+ - 0.04055065
+ - 0.0008690419
+ - 0.004157825
+ - 0.34768245
+ - 0.00089763355
+ - 0.019697627
+ - 0.0016467762
+ - 0.063316345
+ laughterScore: 0
+ - frameNumber: 1460
+ frameDelay: 0
+ Visemes:
+ - 0.02246181
+ - 0.0027788472
+ - 0.0018648043
+ - 0.008835883
+ - 0.52806544
+ - 0.009485177
+ - 0.08572102
+ - 0.0310535
+ - 0.0006292868
+ - 0.0029428073
+ - 0.2455935
+ - 0.0006362417
+ - 0.014387817
+ - 0.0011551777
+ - 0.044388693
+ laughterScore: 0
+ - frameNumber: 1461
+ frameDelay: 0
+ Visemes:
+ - 0.024799094
+ - 0.002024884
+ - 0.001357051
+ - 0.0069909166
+ - 0.49139562
+ - 0.00694384
+ - 0.075884834
+ - 0.022241455
+ - 0.0005273166
+ - 0.073210746
+ - 0.23772585
+ - 0.0006550867
+ - 0.014622219
+ - 0.0010937671
+ - 0.040527306
+ laughterScore: 0
+ - frameNumber: 1462
+ frameDelay: 0
+ Visemes:
+ - 0.03104595
+ - 0.0026148907
+ - 0.0010809592
+ - 0.005554727
+ - 0.3529261
+ - 0.00555856
+ - 0.05887781
+ - 0.015708275
+ - 0.0012395659
+ - 0.2538957
+ - 0.18391575
+ - 0.0067133396
+ - 0.0169822
+ - 0.0147651
+ - 0.049121108
+ laughterScore: 0
+ - frameNumber: 1463
+ frameDelay: 0
+ Visemes:
+ - 0.024222486
+ - 0.002166233
+ - 0.0008727511
+ - 0.003958909
+ - 0.24714272
+ - 0.0039540743
+ - 0.041599058
+ - 0.011002167
+ - 0.000982098
+ - 0.4679443
+ - 0.13237794
+ - 0.006086814
+ - 0.0119287
+ - 0.010597298
+ - 0.0351645
+ laughterScore: 0
+ - frameNumber: 1464
+ frameDelay: 0
+ Visemes:
+ - 0.020137208
+ - 0.0016154359
+ - 0.0006395471
+ - 0.002790897
+ - 0.1731265
+ - 0.0031705538
+ - 0.029234964
+ - 0.007706502
+ - 0.0007534901
+ - 0.5948049
+ - 0.10423464
+ - 0.020817969
+ - 0.008496481
+ - 0.0076085553
+ - 0.024862414
+ laughterScore: 0
+ - frameNumber: 1465
+ frameDelay: 0
+ Visemes:
+ - 0.025011797
+ - 0.0012113618
+ - 0.00048206118
+ - 0.0019697903
+ - 0.12176973
+ - 0.0035563936
+ - 0.02055163
+ - 0.0054035326
+ - 0.00063396664
+ - 0.46537873
+ - 0.21260984
+ - 0.10891115
+ - 0.009331844
+ - 0.0055453843
+ - 0.017632836
+ laughterScore: 0
+ - frameNumber: 1466
+ frameDelay: 0
+ Visemes:
+ - 0.024525393
+ - 0.000976269
+ - 0.0003738589
+ - 0.0013941487
+ - 0.08596756
+ - 0.002879917
+ - 0.014650275
+ - 0.003805469
+ - 0.00064460665
+ - 0.33000183
+ - 0.2443624
+ - 0.26195478
+ - 0.011733743
+ - 0.0043161875
+ - 0.012413576
+ laughterScore: 0
+ - frameNumber: 1467
+ frameDelay: 0
+ Visemes:
+ - 0.01982759
+ - 0.00071262574
+ - 0.00034765943
+ - 0.0010175202
+ - 0.060579248
+ - 0.0020703438
+ - 0.010326319
+ - 0.002691317
+ - 0.0004984871
+ - 0.23105772
+ - 0.43523046
+ - 0.21513975
+ - 0.008665229
+ - 0.0031408707
+ - 0.008694866
+ laughterScore: 0
+ - frameNumber: 1468
+ frameDelay: 0
+ Visemes:
+ - 0.015352129
+ - 0.0006192571
+ - 0.001009146
+ - 0.00076702377
+ - 0.043135434
+ - 0.0015138685
+ - 0.007297243
+ - 0.0019053607
+ - 0.00045670517
+ - 0.16178127
+ - 0.59589946
+ - 0.15505174
+ - 0.0068601193
+ - 0.0022518854
+ - 0.006099358
+ laughterScore: 0
+ - frameNumber: 1469
+ frameDelay: 0
+ Visemes:
+ - 0.012345662
+ - 0.0017546425
+ - 0.00525936
+ - 0.00067255914
+ - 0.031449664
+ - 0.0011873913
+ - 0.0051449174
+ - 0.001375079
+ - 0.0004268078
+ - 0.11327991
+ - 0.7060053
+ - 0.10944922
+ - 0.005551536
+ - 0.0016653612
+ - 0.0044326
+ laughterScore: 0
+ - frameNumber: 1470
+ frameDelay: 0
+ Visemes:
+ - 0.011213447
+ - 0.0048013646
+ - 0.020766348
+ - 0.00064726593
+ - 0.023932386
+ - 0.0027718043
+ - 0.0037489603
+ - 0.0011458639
+ - 0.00071783573
+ - 0.079381876
+ - 0.7610321
+ - 0.078012474
+ - 0.0073264437
+ - 0.0012045832
+ - 0.0032972407
+ laughterScore: 0
+ - frameNumber: 1471
+ frameDelay: 0
+ Visemes:
+ - 0.010973762
+ - 0.031610753
+ - 0.23829994
+ - 0.0010899802
+ - 0.024455972
+ - 0.0052316217
+ - 0.0028263552
+ - 0.0014773624
+ - 0.0013304645
+ - 0.055838667
+ - 0.5609954
+ - 0.055455197
+ - 0.006963074
+ - 0.0008665457
+ - 0.0025848886
+ laughterScore: 0
+ - frameNumber: 1472
+ frameDelay: 0
+ Visemes:
+ - 0.009484883
+ - 0.040597636
+ - 0.42013294
+ - 0.0069796992
+ - 0.019028258
+ - 0.006162613
+ - 0.0020486496
+ - 0.0028626146
+ - 0.0010151612
+ - 0.03912733
+ - 0.40602484
+ - 0.038852397
+ - 0.0052465177
+ - 0.00061054475
+ - 0.0018258923
+ laughterScore: 0
+ - frameNumber: 1473
+ frameDelay: 0
+ Visemes:
+ - 0.009781221
+ - 0.043655444
+ - 0.5355858
+ - 0.02098358
+ - 0.020344745
+ - 0.00945348
+ - 0.0015143887
+ - 0.006416156
+ - 0.0007635132
+ - 0.027408315
+ - 0.29138762
+ - 0.027209748
+ - 0.0037761892
+ - 0.00042992225
+ - 0.0012898052
+ laughterScore: 0
+ - frameNumber: 1474
+ frameDelay: 0
+ Visemes:
+ - 0.015824217
+ - 0.055181716
+ - 0.58779293
+ - 0.033866845
+ - 0.033717826
+ - 0.012109705
+ - 0.0011291349
+ - 0.007820282
+ - 0.00060466776
+ - 0.019242866
+ - 0.20951945
+ - 0.019094625
+ - 0.0028296502
+ - 0.00030940902
+ - 0.00095661293
+ laughterScore: 0
+ - frameNumber: 1475
+ frameDelay: 0
+ Visemes:
+ - 0.020205613
+ - 0.047482
+ - 0.4158803
+ - 0.0253118
+ - 0.13333754
+ - 0.16560754
+ - 0.006738024
+ - 0.0069262814
+ - 0.0004803477
+ - 0.013488767
+ - 0.14785531
+ - 0.013556801
+ - 0.0022034708
+ - 0.00023541998
+ - 0.00069075136
+ laughterScore: 0
+ - frameNumber: 1476
+ frameDelay: 0
+ Visemes:
+ - 0.024861224
+ - 0.046370614
+ - 0.29450738
+ - 0.018611316
+ - 0.16758424
+ - 0.30035678
+ - 0.0118932845
+ - 0.007593095
+ - 0.00048364507
+ - 0.009483894
+ - 0.10390939
+ - 0.0095517095
+ - 0.0035605705
+ - 0.0002161072
+ - 0.0010167697
+ laughterScore: 0
+ - frameNumber: 1477
+ frameDelay: 0
+ Visemes:
+ - 0.030543767
+ - 0.054327928
+ - 0.20752767
+ - 0.013497911
+ - 0.1288383
+ - 0.44748864
+ - 0.009008329
+ - 0.008651755
+ - 0.0009024838
+ - 0.006770955
+ - 0.07599627
+ - 0.0069480543
+ - 0.007260649
+ - 0.00026395184
+ - 0.0019733743
+ laughterScore: 0
+ - frameNumber: 1478
+ frameDelay: 0
+ Visemes:
+ - 0.030642554
+ - 0.045162264
+ - 0.14593822
+ - 0.009613273
+ - 0.09514528
+ - 0.5740129
+ - 0.0064655873
+ - 0.0066289
+ - 0.0033213093
+ - 0.0051685353
+ - 0.05681409
+ - 0.0053423834
+ - 0.012786115
+ - 0.00024378927
+ - 0.0027148903
+ laughterScore: 0
+ - frameNumber: 1479
+ frameDelay: 0
+ Visemes:
+ - 0.024974354
+ - 0.03200194
+ - 0.102162495
+ - 0.006740393
+ - 0.067107946
+ - 0.6777212
+ - 0.0045919083
+ - 0.00465706
+ - 0.0025345974
+ - 0.003682407
+ - 0.04255283
+ - 0.014386363
+ - 0.0145399105
+ - 0.0001851653
+ - 0.0021614505
+ laughterScore: 0
+ - frameNumber: 1480
+ frameDelay: 0
+ Visemes:
+ - 0.01959934
+ - 0.022423238
+ - 0.07151419
+ - 0.0047191097
+ - 0.047000848
+ - 0.47745192
+ - 0.003229916
+ - 0.0032610942
+ - 0.0018818909
+ - 0.0025867524
+ - 0.030613586
+ - 0.2983229
+ - 0.015560592
+ - 0.00013136842
+ - 0.0017033024
+ laughterScore: 0
+ - frameNumber: 1481
+ frameDelay: 0
+ Visemes:
+ - 0.017603105
+ - 0.015727587
+ - 0.050060466
+ - 0.0033047854
+ - 0.032981753
+ - 0.33509734
+ - 0.002292309
+ - 0.0022855264
+ - 0.0018363653
+ - 0.0018387319
+ - 0.021875016
+ - 0.4881096
+ - 0.025121517
+ - 0.00010009419
+ - 0.0017658626
+ laughterScore: 0
+ - frameNumber: 1482
+ frameDelay: 0
+ Visemes:
+ - 0.013375451
+ - 0.011039834
+ - 0.035042346
+ - 0.0023140581
+ - 0.023109784
+ - 0.2345891
+ - 0.0016066745
+ - 0.0016005116
+ - 0.0018551984
+ - 0.0012934705
+ - 0.015481044
+ - 0.63678676
+ - 0.020479953
+ - 0.00007385468
+ - 0.0013520069
+ laughterScore: 0
+ - frameNumber: 1483
+ frameDelay: 0
+ Visemes:
+ - 0.009746785
+ - 0.007737999
+ - 0.024529643
+ - 0.001620068
+ - 0.016185293
+ - 0.16421758
+ - 0.0011251646
+ - 0.0011205463
+ - 0.0018612256
+ - 0.0009088435
+ - 0.011029607
+ - 0.7439688
+ - 0.014939277
+ - 0.00005417368
+ - 0.00095502654
+ laughterScore: 0
+ - frameNumber: 1484
+ frameDelay: 0
+ Visemes:
+ - 0.007219243
+ - 0.005424215
+ - 0.017170753
+ - 0.0011348688
+ - 0.011336724
+ - 0.11496146
+ - 0.0007880893
+ - 0.0007845852
+ - 0.0020123047
+ - 0.0006458043
+ - 0.008782599
+ - 0.81784475
+ - 0.01117628
+ - 0.000042336014
+ - 0.00067597465
+ laughterScore: 0
+ - frameNumber: 1485
+ frameDelay: 0
+ Visemes:
+ - 0.0055466797
+ - 0.003810258
+ - 0.0120195355
+ - 0.00079566415
+ - 0.007944021
+ - 0.080483876
+ - 0.00055229414
+ - 0.000549389
+ - 0.0039171795
+ - 0.00047826432
+ - 0.006726335
+ - 0.8679
+ - 0.008759065
+ - 0.000035292793
+ - 0.00048206458
+ laughterScore: 0
+ - frameNumber: 1486
+ frameDelay: 0
+ Visemes:
+ - 0.0047868965
+ - 0.003100865
+ - 0.008413835
+ - 0.0005580522
+ - 0.0056184065
+ - 0.056364328
+ - 0.0003886079
+ - 0.00038529604
+ - 0.06939216
+ - 0.00038733316
+ - 0.0051928274
+ - 0.837014
+ - 0.00801746
+ - 0.000031078645
+ - 0.00034880094
+ laughterScore: 0
+ - frameNumber: 1487
+ frameDelay: 0
+ Visemes:
+ - 0.0034553865
+ - 0.002873597
+ - 0.0058898623
+ - 0.00039158226
+ - 0.004002697
+ - 0.03962416
+ - 0.00027536025
+ - 0.00027203024
+ - 0.34667322
+ - 0.0002719166
+ - 0.0036576705
+ - 0.5866826
+ - 0.005663831
+ - 0.000021780683
+ - 0.0002442427
+ laughterScore: 0
+ - frameNumber: 1488
+ frameDelay: 0
+ Visemes:
+ - 0.002646019
+ - 0.002445359
+ - 0.004123639
+ - 0.00027647748
+ - 0.0034534312
+ - 0.027919842
+ - 0.00019761079
+ - 0.00019555108
+ - 0.54110706
+ - 0.0001906367
+ - 0.0025698137
+ - 0.41069692
+ - 0.0039912923
+ - 0.000015254932
+ - 0.00017102798
+ laughterScore: 0
+ - frameNumber: 1489
+ frameDelay: 0
+ Visemes:
+ - 0.0027534922
+ - 0.0020579412
+ - 0.0029232062
+ - 0.00067435595
+ - 0.038092036
+ - 0.019758552
+ - 0.00042340334
+ - 0.0006246516
+ - 0.64025736
+ - 0.00013414299
+ - 0.0018419751
+ - 0.2874938
+ - 0.0028343496
+ - 0.00001080446
+ - 0.00011987812
+ laughterScore: 0
+ - frameNumber: 1490
+ frameDelay: 0
+ Visemes:
+ - 0.0043771807
+ - 0.001585825
+ - 0.0021468154
+ - 0.0015602175
+ - 0.051329754
+ - 0.013930656
+ - 0.0003097169
+ - 0.2690596
+ - 0.45089075
+ - 0.000098314624
+ - 0.0013482246
+ - 0.20125198
+ - 0.0020179562
+ - 0.000008057724
+ - 0.00008491447
+ laughterScore: 0
+ - frameNumber: 1491
+ frameDelay: 0
+ Visemes:
+ - 0.004244365
+ - 0.0011449163
+ - 0.0016920808
+ - 0.0021051099
+ - 0.039371245
+ - 0.009765295
+ - 0.00022507881
+ - 0.48222327
+ - 0.31576428
+ - 0.00007202044
+ - 0.0009986223
+ - 0.14088371
+ - 0.0014432075
+ - 0.000006238025
+ - 0.000060531944
+ laughterScore: 0
+ - frameNumber: 1492
+ frameDelay: 0
+ Visemes:
+ - 0.00582679
+ - 0.00086234557
+ - 0.0012474892
+ - 0.0016457045
+ - 0.032861102
+ - 0.006873283
+ - 0.00016203529
+ - 0.62876785
+ - 0.22117306
+ - 0.000057427067
+ - 0.00075585605
+ - 0.0986397
+ - 0.0010741514
+ - 0.000007508369
+ - 0.000045665496
+ laughterScore: 0
+ - frameNumber: 1493
+ frameDelay: 0
+ Visemes:
+ - 0.009705748
+ - 0.0007505276
+ - 0.00093526504
+ - 0.0015502026
+ - 0.038176227
+ - 0.00521339
+ - 0.00011886465
+ - 0.71776307
+ - 0.15493414
+ - 0.000049161397
+ - 0.00060913456
+ - 0.06909143
+ - 0.0010555462
+ - 0.000011162746
+ - 0.000036112117
+ laughterScore: 0
+ - frameNumber: 1494
+ frameDelay: 0
+ Visemes:
+ - 0.013623999
+ - 0.0006256532
+ - 0.00071166083
+ - 0.0014786093
+ - 0.035775535
+ - 0.0040387716
+ - 0.00009150965
+ - 0.7849753
+ - 0.1084892
+ - 0.00003957731
+ - 0.0005063705
+ - 0.04840751
+ - 0.001183475
+ - 0.000013152765
+ - 0.00003971447
+ laughterScore: 0
+ - frameNumber: 1495
+ frameDelay: 0
+ Visemes:
+ - 0.022930441
+ - 0.002955382
+ - 0.00071373535
+ - 0.0036907513
+ - 0.047274545
+ - 0.007841856
+ - 0.000074093296
+ - 0.78280216
+ - 0.087647006
+ - 0.00027234634
+ - 0.0037111288
+ - 0.034398716
+ - 0.003768521
+ - 0.00016541773
+ - 0.0017539554
+ laughterScore: 0
+ - frameNumber: 1496
+ frameDelay: 0
+ Visemes:
+ - 0.03990929
+ - 0.04847368
+ - 0.0028960088
+ - 0.008471885
+ - 0.09924002
+ - 0.07647838
+ - 0.0001088115
+ - 0.6261004
+ - 0.06169929
+ - 0.00027327152
+ - 0.0057131364
+ - 0.024321165
+ - 0.0042763883
+ - 0.00019081346
+ - 0.0018474993
+ laughterScore: 0
+ - frameNumber: 1497
+ frameDelay: 0
+ Visemes:
+ - 0.06570641
+ - 0.18660048
+ - 0.0056295376
+ - 0.011265671
+ - 0.11323415
+ - 0.08292906
+ - 0.0003565393
+ - 0.4574014
+ - 0.043505732
+ - 0.00031550697
+ - 0.0062924065
+ - 0.01762707
+ - 0.005273465
+ - 0.0003727675
+ - 0.0034898878
+ laughterScore: 0
+ - frameNumber: 1498
+ frameDelay: 0
+ Visemes:
+ - 0.07538032
+ - 0.3363117
+ - 0.019317592
+ - 0.016394988
+ - 0.09213198
+ - 0.067038774
+ - 0.0006031785
+ - 0.3282889
+ - 0.03095283
+ - 0.0010344917
+ - 0.005486686
+ - 0.012848121
+ - 0.0051961634
+ - 0.00057401723
+ - 0.008440368
+ laughterScore: 0
+ - frameNumber: 1499
+ frameDelay: 0
+ Visemes:
+ - 0.06560146
+ - 0.41845667
+ - 0.014626716
+ - 0.012471409
+ - 0.071018785
+ - 0.06068314
+ - 0.00053265505
+ - 0.22989188
+ - 0.023354873
+ - 0.0013060414
+ - 0.004468754
+ - 0.009563929
+ - 0.080887586
+ - 0.00041178474
+ - 0.0067243557
+ laughterScore: 0
+ - frameNumber: 1500
+ frameDelay: 0
+ Visemes:
+ - 0.052087285
+ - 0.32172477
+ - 0.010508505
+ - 0.009004491
+ - 0.050100464
+ - 0.042857286
+ - 0.00047239132
+ - 0.16100155
+ - 0.017355822
+ - 0.0012713589
+ - 0.0034690618
+ - 0.007864441
+ - 0.31665885
+ - 0.000309164
+ - 0.005314589
+ laughterScore: 0
+ - frameNumber: 1501
+ frameDelay: 0
+ Visemes:
+ - 0.043604877
+ - 0.22799309
+ - 0.0074080424
+ - 0.00635443
+ - 0.03517486
+ - 0.030143501
+ - 0.00035489682
+ - 0.11272909
+ - 0.012565708
+ - 0.0009930087
+ - 0.0025213102
+ - 0.0061989226
+ - 0.5095411
+ - 0.00022805415
+ - 0.0041891783
+ laughterScore: 0
+ - frameNumber: 1502
+ frameDelay: 0
+ Visemes:
+ - 0.039141465
+ - 0.16144738
+ - 0.0052133896
+ - 0.0044872826
+ - 0.024809526
+ - 0.021282796
+ - 0.0002833132
+ - 0.078939304
+ - 0.009028403
+ - 0.00079589
+ - 0.0018822579
+ - 0.0065827593
+ - 0.6426674
+ - 0.0001684997
+ - 0.0032703453
+ laughterScore: 0
+ - frameNumber: 1503
+ frameDelay: 0
+ Visemes:
+ - 0.035057504
+ - 0.11312228
+ - 0.0036532108
+ - 0.0031499604
+ - 0.017541265
+ - 0.015192474
+ - 0.00022354462
+ - 0.05528835
+ - 0.0064831483
+ - 0.0005951505
+ - 0.0013781631
+ - 0.00968273
+ - 0.7361363
+ - 0.00012053365
+ - 0.002375403
+ laughterScore: 0
+ - frameNumber: 1504
+ frameDelay: 0
+ Visemes:
+ - 0.03595139
+ - 0.07940032
+ - 0.002573135
+ - 0.0022139717
+ - 0.012900102
+ - 0.011061255
+ - 0.00021331651
+ - 0.038809925
+ - 0.004648831
+ - 0.00044709045
+ - 0.0010908564
+ - 0.025948917
+ - 0.78289735
+ - 0.00008736739
+ - 0.0017561379
+ laughterScore: 0
+ - frameNumber: 1505
+ frameDelay: 0
+ Visemes:
+ - 0.03557153
+ - 0.05605738
+ - 0.0019091415
+ - 0.0016039296
+ - 0.010893373
+ - 0.00804888
+ - 0.00022745624
+ - 0.027483787
+ - 0.0034395393
+ - 0.0003410258
+ - 0.0008370437
+ - 0.0328084
+ - 0.81934536
+ - 0.000069723246
+ - 0.0013633713
+ laughterScore: 0
+ - frameNumber: 1506
+ frameDelay: 0
+ Visemes:
+ - 0.031027522
+ - 0.042313
+ - 0.0016754117
+ - 0.0015171022
+ - 0.032637157
+ - 0.00642075
+ - 0.0021379557
+ - 0.02004337
+ - 0.0028120426
+ - 0.0002734208
+ - 0.0006433832
+ - 0.042350367
+ - 0.8147276
+ - 0.00006135294
+ - 0.0013595503
+ laughterScore: 0
+ - frameNumber: 1507
+ frameDelay: 0
+ Visemes:
+ - 0.032496274
+ - 0.036833655
+ - 0.0019507059
+ - 0.0031108335
+ - 0.1297475
+ - 0.007598186
+ - 0.04545889
+ - 0.01575696
+ - 0.0022707735
+ - 0.00025015685
+ - 0.00057038665
+ - 0.03515838
+ - 0.68743837
+ - 0.000056317782
+ - 0.0013026705
+ laughterScore: 0
+ - frameNumber: 1508
+ frameDelay: 0
+ Visemes:
+ - 0.024387032
+ - 0.025842655
+ - 0.0014243658
+ - 0.0022423756
+ - 0.11003699
+ - 0.0056047314
+ - 0.3090293
+ - 0.011602319
+ - 0.0016583973
+ - 0.0002016996
+ - 0.00040990577
+ - 0.024633598
+ - 0.48195523
+ - 0.000040243805
+ - 0.0009312043
+ laughterScore: 0
+ - frameNumber: 1509
+ frameDelay: 0
+ Visemes:
+ - 0.018453896
+ - 0.018091552
+ - 0.0010010004
+ - 0.00175575
+ - 0.08406003
+ - 0.003953896
+ - 0.50611293
+ - 0.008859393
+ - 0.0011717919
+ - 0.00016001039
+ - 0.00029828
+ - 0.017246228
+ - 0.3381473
+ - 0.000028312523
+ - 0.00065961404
+ laughterScore: 0
+ - frameNumber: 1510
+ frameDelay: 0
+ Visemes:
+ - 0.015686773
+ - 0.012671172
+ - 0.00070684863
+ - 0.0019343513
+ - 0.067636415
+ - 0.0027851982
+ - 0.6380974
+ - 0.00706272
+ - 0.00083875447
+ - 0.00018649818
+ - 0.00024990295
+ - 0.012074164
+ - 0.23951748
+ - 0.00002085649
+ - 0.0005314735
+ laughterScore: 0
+ - frameNumber: 1511
+ frameDelay: 0
+ Visemes:
+ - 0.016856503
+ - 0.008936042
+ - 0.0007400935
+ - 0.0017277432
+ - 0.06954828
+ - 0.0020896916
+ - 0.6921746
+ - 0.0072909147
+ - 0.00064171216
+ - 0.0020013528
+ - 0.00036436634
+ - 0.008461262
+ - 0.18827958
+ - 0.000051987714
+ - 0.0008358391
+ laughterScore: 0
+ - frameNumber: 1512
+ frameDelay: 0
+ Visemes:
+ - 0.017467009
+ - 0.0063220644
+ - 0.0017465919
+ - 0.0013571857
+ - 0.0652919
+ - 0.002577989
+ - 0.7242743
+ - 0.0064364024
+ - 0.00049455976
+ - 0.005272267
+ - 0.00061971985
+ - 0.00596712
+ - 0.16119857
+ - 0.000061624494
+ - 0.00091265456
+ laughterScore: 0
+ - frameNumber: 1513
+ frameDelay: 0
+ Visemes:
+ - 0.0192969
+ - 0.004630027
+ - 0.0043202746
+ - 0.0014672675
+ - 0.056751527
+ - 0.0026053772
+ - 0.7294431
+ - 0.006365332
+ - 0.00044195293
+ - 0.034929585
+ - 0.0022050887
+ - 0.0042443434
+ - 0.13162403
+ - 0.00022418691
+ - 0.0014510169
+ laughterScore: 0
+ - frameNumber: 1514
+ frameDelay: 0
+ Visemes:
+ - 0.017596528
+ - 0.0035054227
+ - 0.005492743
+ - 0.0011790605
+ - 0.047956217
+ - 0.001949134
+ - 0.7621216
+ - 0.005350275
+ - 0.0003883513
+ - 0.05297479
+ - 0.0020339193
+ - 0.0029887164
+ - 0.09469799
+ - 0.0002480314
+ - 0.0015172157
+ laughterScore: 0
+ - frameNumber: 1515
+ frameDelay: 0
+ Visemes:
+ - 0.023335267
+ - 0.009218659
+ - 0.0074034054
+ - 0.0011210083
+ - 0.041296422
+ - 0.0021183288
+ - 0.7876125
+ - 0.0062414696
+ - 0.00078681443
+ - 0.042007565
+ - 0.005607648
+ - 0.002117479
+ - 0.068158425
+ - 0.00025210378
+ - 0.0027229232
+ laughterScore: 0
+ - frameNumber: 1516
+ frameDelay: 0
+ Visemes:
+ - 0.041287176
+ - 0.02110147
+ - 0.009016001
+ - 0.0013219909
+ - 0.03753078
+ - 0.0024560695
+ - 0.77565753
+ - 0.011405552
+ - 0.0009700394
+ - 0.036509827
+ - 0.0051416783
+ - 0.0015904605
+ - 0.049696326
+ - 0.00030345906
+ - 0.0060116067
+ laughterScore: 0
+ - frameNumber: 1517
+ frameDelay: 0
+ Visemes:
+ - 0.074467
+ - 0.046244085
+ - 0.015149868
+ - 0.002489576
+ - 0.038425207
+ - 0.0040662074
+ - 0.7224221
+ - 0.017817058
+ - 0.0017697203
+ - 0.026453137
+ - 0.0045945314
+ - 0.002491079
+ - 0.037478507
+ - 0.00033801026
+ - 0.0057939384
+ laughterScore: 0
+ - frameNumber: 1518
+ frameDelay: 0
+ Visemes:
+ - 0.12549862
+ - 0.094114885
+ - 0.07560311
+ - 0.0038501876
+ - 0.04749638
+ - 0.0075094253
+ - 0.5525768
+ - 0.030260857
+ - 0.0016337803
+ - 0.019588597
+ - 0.004348686
+ - 0.0029707188
+ - 0.028100446
+ - 0.00050207815
+ - 0.00594542
+ laughterScore: 0
+ - frameNumber: 1519
+ frameDelay: 0
+ Visemes:
+ - 0.10129568
+ - 0.21601796
+ - 0.15852492
+ - 0.006079612
+ - 0.053061917
+ - 0.007514448
+ - 0.38758403
+ - 0.023043662
+ - 0.0013223393
+ - 0.014684232
+ - 0.0035308793
+ - 0.0022109803
+ - 0.019904599
+ - 0.0005449677
+ - 0.0046797623
+ laughterScore: 0
+ - frameNumber: 1520
+ frameDelay: 0
+ Visemes:
+ - 0.075464405
+ - 0.16838554
+ - 0.20477602
+ - 0.006317066
+ - 0.04316119
+ - 0.0058248476
+ - 0.27138188
+ - 0.018645765
+ - 0.0021077935
+ - 0.17663848
+ - 0.0055992827
+ - 0.00175986
+ - 0.014097689
+ - 0.002204223
+ - 0.0036359318
+ laughterScore: 0
+ - frameNumber: 1521
+ frameDelay: 0
+ Visemes:
+ - 0.06077362
+ - 0.11883936
+ - 0.15245019
+ - 0.004596932
+ - 0.030438649
+ - 0.0041524414
+ - 0.18997195
+ - 0.0131041985
+ - 0.0028425981
+ - 0.295328
+ - 0.05713234
+ - 0.0059676236
+ - 0.009966274
+ - 0.04893146
+ - 0.0055043567
+ laughterScore: 0
+ - frameNumber: 1522
+ frameDelay: 0
+ Visemes:
+ - 0.04792914
+ - 0.08328149
+ - 0.10696719
+ - 0.0032214895
+ - 0.021325666
+ - 0.0029228588
+ - 0.13298085
+ - 0.009177418
+ - 0.0020458598
+ - 0.48783612
+ - 0.043212198
+ - 0.007753334
+ - 0.0070638265
+ - 0.03950146
+ - 0.0047810827
+ laughterScore: 0
+ - frameNumber: 1523
+ frameDelay: 0
+ Visemes:
+ - 0.03753532
+ - 0.058471967
+ - 0.07496216
+ - 0.0022636808
+ - 0.01513668
+ - 0.0020661189
+ - 0.09308781
+ - 0.006436386
+ - 0.00145256
+ - 0.63166726
+ - 0.032003164
+ - 0.007746601
+ - 0.0053846235
+ - 0.028080821
+ - 0.0037048243
+ laughterScore: 0
+ - frameNumber: 1524
+ frameDelay: 0
+ Visemes:
+ - 0.029678784
+ - 0.041413642
+ - 0.052496698
+ - 0.0016123843
+ - 0.014552021
+ - 0.0015204309
+ - 0.06516458
+ - 0.004527589
+ - 0.0017451411
+ - 0.72564983
+ - 0.024489487
+ - 0.008743012
+ - 0.005450668
+ - 0.02022338
+ - 0.0027323207
+ laughterScore: 0
+ - frameNumber: 1525
+ frameDelay: 0
+ Visemes:
+ - 0.024990186
+ - 0.029119316
+ - 0.036753964
+ - 0.0012088048
+ - 0.046037298
+ - 0.0011658763
+ - 0.04567418
+ - 0.0034214095
+ - 0.22501701
+ - 0.5379551
+ - 0.01859785
+ - 0.008531117
+ - 0.0054305126
+ - 0.014171379
+ - 0.001926022
+ laughterScore: 0
+ - frameNumber: 1526
+ frameDelay: 0
+ Visemes:
+ - 0.020566076
+ - 0.020471757
+ - 0.025733894
+ - 0.0009593392
+ - 0.043054968
+ - 0.00095738017
+ - 0.031976018
+ - 0.0024985857
+ - 0.44269532
+ - 0.37683496
+ - 0.013106489
+ - 0.0060180905
+ - 0.0038550838
+ - 0.009921537
+ - 0.0013504988
+ laughterScore: 0
+ - frameNumber: 1527
+ frameDelay: 0
+ Visemes:
+ - 0.019186627
+ - 0.017629204
+ - 0.018024355
+ - 0.0012945097
+ - 0.03999825
+ - 0.0009036451
+ - 0.022396669
+ - 0.001792838
+ - 0.5877478
+ - 0.2638213
+ - 0.011154419
+ - 0.0046014036
+ - 0.003510537
+ - 0.006957591
+ - 0.000980861
+ laughterScore: 0
+ - frameNumber: 1528
+ frameDelay: 0
+ Visemes:
+ - 0.015541659
+ - 0.012716638
+ - 0.012619939
+ - 0.0010457349
+ - 0.03247855
+ - 0.00078188686
+ - 0.015679492
+ - 0.0012706526
+ - 0.70290864
+ - 0.18468967
+ - 0.008456554
+ - 0.003565288
+ - 0.002652509
+ - 0.0048839627
+ - 0.0007088562
+ laughterScore: 0
+ - frameNumber: 1529
+ frameDelay: 0
+ Visemes:
+ - 0.015122085
+ - 0.00898329
+ - 0.008835789
+ - 0.0008753082
+ - 0.028619591
+ - 0.000648665
+ - 0.01099098
+ - 0.0008964977
+ - 0.6545406
+ - 0.12929812
+ - 0.11588279
+ - 0.0042141574
+ - 0.0019901295
+ - 0.01852291
+ - 0.0005791298
+ laughterScore: 0
+ - frameNumber: 1530
+ frameDelay: 0
+ Visemes:
+ - 0.020406209
+ - 0.006412379
+ - 0.0062062256
+ - 0.0013070161
+ - 0.021712469
+ - 0.0007006743
+ - 0.007717904
+ - 0.00063652673
+ - 0.4641996
+ - 0.09058618
+ - 0.31452522
+ - 0.005651233
+ - 0.0017328747
+ - 0.05758083
+ - 0.0006246738
+ laughterScore: 0
+ - frameNumber: 1531
+ frameDelay: 0
+ Visemes:
+ - 0.019997988
+ - 0.0045337304
+ - 0.004374015
+ - 0.0011211188
+ - 0.015696794
+ - 0.0011882035
+ - 0.0054130275
+ - 0.00045440526
+ - 0.3258428
+ - 0.063440904
+ - 0.4947303
+ - 0.0060545756
+ - 0.0012819178
+ - 0.055390462
+ - 0.00047975016
+ laughterScore: 0
+ - frameNumber: 1532
+ frameDelay: 0
+ Visemes:
+ - 0.01984907
+ - 0.0032341818
+ - 0.0031016201
+ - 0.0009896269
+ - 0.012230362
+ - 0.0020749075
+ - 0.0037951285
+ - 0.00033811285
+ - 0.22892879
+ - 0.044453677
+ - 0.61954236
+ - 0.0067600626
+ - 0.0010060335
+ - 0.05331939
+ - 0.0003766616
+ laughterScore: 0
+ - frameNumber: 1533
+ frameDelay: 0
+ Visemes:
+ - 0.017779283
+ - 0.002405659
+ - 0.0021960516
+ - 0.00087519846
+ - 0.011947944
+ - 0.0022926605
+ - 0.0026663162
+ - 0.0002636246
+ - 0.1615335
+ - 0.031226993
+ - 0.71558183
+ - 0.008522807
+ - 0.00084859517
+ - 0.04155091
+ - 0.00030858692
+ laughterScore: 0
+ - frameNumber: 1534
+ frameDelay: 0
+ Visemes:
+ - 0.015575854
+ - 0.0017510412
+ - 0.0015457636
+ - 0.0013950533
+ - 0.012395417
+ - 0.003253463
+ - 0.001952868
+ - 0.00022251715
+ - 0.11542346
+ - 0.022075312
+ - 0.7839211
+ - 0.007951639
+ - 0.0010892029
+ - 0.031181667
+ - 0.0002656801
+ laughterScore: 0
+ - frameNumber: 1535
+ frameDelay: 0
+ Visemes:
+ - 0.016477894
+ - 0.0028574644
+ - 0.001169209
+ - 0.0018268246
+ - 0.06347237
+ - 0.006457447
+ - 0.0022949656
+ - 0.0005754746
+ - 0.09936535
+ - 0.015689436
+ - 0.7536305
+ - 0.008644024
+ - 0.003301993
+ - 0.023736328
+ - 0.0005007199
+ laughterScore: 0
+ - frameNumber: 1536
+ frameDelay: 0
+ Visemes:
+ - 0.018310469
+ - 0.092598565
+ - 0.0024666823
+ - 0.0055248197
+ - 0.1663523
+ - 0.0048091365
+ - 0.0017221498
+ - 0.0006985783
+ - 0.088568896
+ - 0.011082895
+ - 0.573495
+ - 0.011250453
+ - 0.005714816
+ - 0.01687832
+ - 0.0005269713
+ laughterScore: 0
+ - frameNumber: 1537
+ frameDelay: 0
+ Visemes:
+ - 0.019414669
+ - 0.3270986
+ - 0.0023268284
+ - 0.0041192407
+ - 0.13252829
+ - 0.0034631677
+ - 0.0012131553
+ - 0.00057235657
+ - 0.070445195
+ - 0.007769013
+ - 0.40662774
+ - 0.007896227
+ - 0.004302989
+ - 0.011834786
+ - 0.0003877436
+ laughterScore: 0
+ - frameNumber: 1538
+ frameDelay: 0
+ Visemes:
+ - 0.026921423
+ - 0.44276392
+ - 0.0025648195
+ - 0.008152206
+ - 0.11502564
+ - 0.0029246095
+ - 0.00096394256
+ - 0.0005957881
+ - 0.08270767
+ - 0.0054772194
+ - 0.29309058
+ - 0.0055785603
+ - 0.0044484995
+ - 0.008495929
+ - 0.0002892301
+ laughterScore: 0
+ - frameNumber: 1539
+ frameDelay: 0
+ Visemes:
+ - 0.035745356
+ - 0.4736495
+ - 0.0031376432
+ - 0.027489364
+ - 0.1575127
+ - 0.005032921
+ - 0.0012158618
+ - 0.0008354542
+ - 0.06951808
+ - 0.0038539942
+ - 0.20838752
+ - 0.0039553223
+ - 0.003361051
+ - 0.0060831415
+ - 0.00022210949
+ laughterScore: 0
+ - frameNumber: 1540
+ frameDelay: 0
+ Visemes:
+ - 0.037210435
+ - 0.50494504
+ - 0.0062245023
+ - 0.052686356
+ - 0.17110597
+ - 0.010720421
+ - 0.0019558817
+ - 0.0009824698
+ - 0.052751515
+ - 0.0027180333
+ - 0.14849122
+ - 0.0028554178
+ - 0.0027867192
+ - 0.004386348
+ - 0.00017976176
+ laughterScore: 0
+ - frameNumber: 1541
+ frameDelay: 0
+ Visemes:
+ - 0.03560883
+ - 0.57730454
+ - 0.03749323
+ - 0.04589267
+ - 0.13701038
+ - 0.011824615
+ - 0.0014394844
+ - 0.0017942777
+ - 0.03739572
+ - 0.0020174698
+ - 0.104524106
+ - 0.0020763695
+ - 0.0021275696
+ - 0.0032648097
+ - 0.00022603724
+ laughterScore: 0
+ - frameNumber: 1542
+ frameDelay: 0
+ Visemes:
+ - 0.053277425
+ - 0.58024514
+ - 0.043326795
+ - 0.039904818
+ - 0.12248386
+ - 0.013298416
+ - 0.0011652958
+ - 0.019918103
+ - 0.031076116
+ - 0.0048288377
+ - 0.07896779
+ - 0.0016614853
+ - 0.0023787296
+ - 0.004256269
+ - 0.0032110263
+ laughterScore: 0
+ - frameNumber: 1543
+ frameDelay: 0
+ Visemes:
+ - 0.062338345
+ - 0.58369786
+ - 0.033268575
+ - 0.031736802
+ - 0.09369967
+ - 0.013596966
+ - 0.001000401
+ - 0.026269883
+ - 0.06490895
+ - 0.0076274634
+ - 0.068627164
+ - 0.0012662621
+ - 0.0034859383
+ - 0.004675584
+ - 0.0038002292
+ laughterScore: 0
+ - frameNumber: 1544
+ frameDelay: 0
+ Visemes:
+ - 0.044246253
+ - 0.40878308
+ - 0.023304276
+ - 0.022259163
+ - 0.06562311
+ - 0.009535149
+ - 0.0007010441
+ - 0.018389914
+ - 0.34027135
+ - 0.0053903842
+ - 0.04825879
+ - 0.0009046374
+ - 0.0025016095
+ - 0.0034096201
+ - 0.006421694
+ laughterScore: 0
+ - frameNumber: 1545
+ frameDelay: 0
+ Visemes:
+ - 0.03227548
+ - 0.28615415
+ - 0.016314529
+ - 0.01560036
+ - 0.045946706
+ - 0.0066837054
+ - 0.00049079984
+ - 0.012873192
+ - 0.5320353
+ - 0.0037800225
+ - 0.034110002
+ - 0.0030586543
+ - 0.0036316684
+ - 0.0024005414
+ - 0.004644969
+ laughterScore: 0
+ - frameNumber: 1546
+ frameDelay: 0
+ Visemes:
+ - 0.02767887
+ - 0.20031717
+ - 0.011420277
+ - 0.010925027
+ - 0.03219153
+ - 0.004682746
+ - 0.00034403437
+ - 0.009011737
+ - 0.3814485
+ - 0.0026538789
+ - 0.028605688
+ - 0.2776906
+ - 0.007955139
+ - 0.001696901
+ - 0.0033779335
+ laughterScore: 0
+ - frameNumber: 1547
+ frameDelay: 0
+ Visemes:
+ - 0.023280198
+ - 0.14023013
+ - 0.007994356
+ - 0.00765076
+ - 0.022680197
+ - 0.0033114206
+ - 0.00024120905
+ - 0.0063096285
+ - 0.2673473
+ - 0.0018672992
+ - 0.023369053
+ - 0.46606448
+ - 0.025925517
+ - 0.0012817864
+ - 0.0024466307
+ laughterScore: 0
+ - frameNumber: 1548
+ frameDelay: 0
+ Visemes:
+ - 0.018120797
+ - 0.09816596
+ - 0.0055987816
+ - 0.0053684134
+ - 0.016282367
+ - 0.0024041606
+ - 0.00017158587
+ - 0.004421371
+ - 0.18749614
+ - 0.0014153159
+ - 0.017860414
+ - 0.5824202
+ - 0.05625055
+ - 0.0011652489
+ - 0.0028586956
+ laughterScore: 0
+ - frameNumber: 1549
+ frameDelay: 0
+ Visemes:
+ - 0.018134467
+ - 0.06874831
+ - 0.0039589996
+ - 0.0037904314
+ - 0.012290278
+ - 0.002292972
+ - 0.00012632286
+ - 0.0031238648
+ - 0.13199864
+ - 0.006602091
+ - 0.01726751
+ - 0.5490285
+ - 0.15938312
+ - 0.016242335
+ - 0.0070121093
+ laughterScore: 0
+ - frameNumber: 1550
+ frameDelay: 0
+ Visemes:
+ - 0.017727135
+ - 0.048315138
+ - 0.0031268033
+ - 0.0027314338
+ - 0.00927692
+ - 0.0022525967
+ - 0.00009111123
+ - 0.0022403016
+ - 0.09274592
+ - 0.059379116
+ - 0.030958511
+ - 0.43548095
+ - 0.17531462
+ - 0.04327691
+ - 0.07708251
+ laughterScore: 0
+ - frameNumber: 1551
+ frameDelay: 0
+ Visemes:
+ - 0.019785592
+ - 0.033898626
+ - 0.0024103904
+ - 0.0019786363
+ - 0.006890921
+ - 0.001764976
+ - 0.00006583783
+ - 0.0015952088
+ - 0.065124825
+ - 0.21627647
+ - 0.030458018
+ - 0.33432782
+ - 0.1433155
+ - 0.04996203
+ - 0.09214516
+ laughterScore: 0
+ - frameNumber: 1552
+ frameDelay: 0
+ Visemes:
+ - 0.027173664
+ - 0.023951678
+ - 0.0020833418
+ - 0.0014441552
+ - 0.0050989995
+ - 0.0014118263
+ - 0.0000494489
+ - 0.0012256567
+ - 0.046168018
+ - 0.40288782
+ - 0.032836482
+ - 0.23897074
+ - 0.10204493
+ - 0.047998287
+ - 0.06665496
+ laughterScore: 0
+ - frameNumber: 1553
+ frameDelay: 0
+ Visemes:
+ - 0.022864345
+ - 0.016802905
+ - 0.0015183822
+ - 0.0010553743
+ - 0.0046155453
+ - 0.0067012007
+ - 0.00031015652
+ - 0.001074862
+ - 0.03279558
+ - 0.55138606
+ - 0.029761449
+ - 0.16841717
+ - 0.08204371
+ - 0.033912532
+ - 0.046740722
+ laughterScore: 0
+ - frameNumber: 1554
+ frameDelay: 0
+ Visemes:
+ - 0.02039954
+ - 0.01178994
+ - 0.0010819302
+ - 0.0022315849
+ - 0.0064919535
+ - 0.19029818
+ - 0.0005142966
+ - 0.0008126241
+ - 0.023288913
+ - 0.46361914
+ - 0.024454467
+ - 0.11883659
+ - 0.07961637
+ - 0.023812143
+ - 0.03275234
+ laughterScore: 0
+ - frameNumber: 1555
+ frameDelay: 0
+ Visemes:
+ - 0.017700035
+ - 0.008310116
+ - 0.0007750682
+ - 0.003434592
+ - 0.022186922
+ - 0.4005333
+ - 0.0015016441
+ - 0.00060783816
+ - 0.016393773
+ - 0.33029112
+ - 0.017886918
+ - 0.08331639
+ - 0.05743928
+ - 0.016677212
+ - 0.022945844
+ laughterScore: 0
+ - frameNumber: 1556
+ frameDelay: 0
+ Visemes:
+ - 0.013821002
+ - 0.005854363
+ - 0.0005508531
+ - 0.002500303
+ - 0.020443346
+ - 0.57264566
+ - 0.0014421456
+ - 0.00046891026
+ - 0.01148232
+ - 0.23183107
+ - 0.012581636
+ - 0.058334704
+ - 0.040290985
+ - 0.01167779
+ - 0.016074976
+ laughterScore: 0
+ - frameNumber: 1557
+ frameDelay: 0
+ Visemes:
+ - 0.012533603
+ - 0.004175959
+ - 0.0005913699
+ - 0.0017832974
+ - 0.015703088
+ - 0.6936265
+ - 0.0010208762
+ - 0.0005867431
+ - 0.008051498
+ - 0.16345954
+ - 0.009951511
+ - 0.040839676
+ - 0.028218403
+ - 0.008178959
+ - 0.011279055
+ laughterScore: 0
+ - frameNumber: 1558
+ frameDelay: 0
+ Visemes:
+ - 0.0115638375
+ - 0.003013347
+ - 0.00043705833
+ - 0.0012579842
+ - 0.011775299
+ - 0.7253811
+ - 0.0007173473
+ - 0.00043532852
+ - 0.005727128
+ - 0.115366444
+ - 0.060725693
+ - 0.028637208
+ - 0.019801216
+ - 0.0057505416
+ - 0.009410554
+ laughterScore: 0
+ - frameNumber: 1559
+ frameDelay: 0
+ Visemes:
+ - 0.012609279
+ - 0.002201497
+ - 0.0003133735
+ - 0.0010158911
+ - 0.008732956
+ - 0.57447565
+ - 0.00051110616
+ - 0.00031923107
+ - 0.0065853586
+ - 0.08114557
+ - 0.24567068
+ - 0.021461038
+ - 0.015071393
+ - 0.0056199725
+ - 0.024267014
+ laughterScore: 0
+ - frameNumber: 1560
+ frameDelay: 0
+ Visemes:
+ - 0.010263626
+ - 0.0016415184
+ - 0.00022112597
+ - 0.00072611705
+ - 0.006236549
+ - 0.40272623
+ - 0.00035967847
+ - 0.00024455244
+ - 0.02697882
+ - 0.05680999
+ - 0.43718085
+ - 0.017246872
+ - 0.011683928
+ - 0.003973058
+ - 0.02370711
+ laughterScore: 0
+ - frameNumber: 1561
+ frameDelay: 0
+ Visemes:
+ - 0.012229547
+ - 0.0030590966
+ - 0.00016315209
+ - 0.0005905195
+ - 0.0055903965
+ - 0.2835092
+ - 0.0002571616
+ - 0.00023392921
+ - 0.30649358
+ - 0.039770573
+ - 0.30799922
+ - 0.012284157
+ - 0.0082414495
+ - 0.002782524
+ - 0.016795544
+ laughterScore: 0
+ - frameNumber: 1562
+ frameDelay: 0
+ Visemes:
+ - 0.011584445
+ - 0.0048905294
+ - 0.00014839374
+ - 0.0014861231
+ - 0.0130615365
+ - 0.200637
+ - 0.0002120565
+ - 0.0002493289
+ - 0.49507552
+ - 0.027843054
+ - 0.21648067
+ - 0.008671865
+ - 0.0058661574
+ - 0.0019503434
+ - 0.011843022
+ laughterScore: 0
+ - frameNumber: 1563
+ frameDelay: 0
+ Visemes:
+ - 0.008971191
+ - 0.007852586
+ - 0.0003290912
+ - 0.0012846522
+ - 0.034932893
+ - 0.14084919
+ - 0.00026735244
+ - 0.00026986797
+ - 0.61408186
+ - 0.01949184
+ - 0.1517346
+ - 0.0060713985
+ - 0.004202158
+ - 0.0013671414
+ - 0.00829422
+ laughterScore: 0
+ - frameNumber: 1564
+ frameDelay: 0
+ Visemes:
+ - 0.012397831
+ - 0.006426595
+ - 0.0006815286
+ - 0.0014620402
+ - 0.26842567
+ - 0.106962875
+ - 0.010983075
+ - 0.001390958
+ - 0.4571437
+ - 0.013667055
+ - 0.106429085
+ - 0.0042518843
+ - 0.002992009
+ - 0.0009634427
+ - 0.005822297
+ laughterScore: 0
+ - frameNumber: 1565
+ frameDelay: 0
+ Visemes:
+ - 0.0180844
+ - 0.0054196487
+ - 0.032453977
+ - 0.0063637854
+ - 0.41200858
+ - 0.07920381
+ - 0.008916928
+ - 0.014290115
+ - 0.32008606
+ - 0.01673782
+ - 0.07564239
+ - 0.0029919236
+ - 0.0026895897
+ - 0.00072227005
+ - 0.004388707
+ laughterScore: 0
+ - frameNumber: 1566
+ frameDelay: 0
+ Visemes:
+ - 0.021960102
+ - 0.005133787
+ - 0.07180774
+ - 0.0071106814
+ - 0.34841865
+ - 0.057823434
+ - 0.0072062938
+ - 0.018878466
+ - 0.2245998
+ - 0.15991066
+ - 0.0624036
+ - 0.0021084398
+ - 0.004250033
+ - 0.00093034643
+ - 0.0074579623
+ laughterScore: 0
+ - frameNumber: 1567
+ frameDelay: 0
+ Visemes:
+ - 0.019793108
+ - 0.004223618
+ - 0.06303971
+ - 0.005303377
+ - 0.25191253
+ - 0.043323707
+ - 0.006624371
+ - 0.015600491
+ - 0.15845323
+ - 0.33521384
+ - 0.05045531
+ - 0.0014819959
+ - 0.0036994305
+ - 0.0020283926
+ - 0.038846925
+ laughterScore: 0
+ - frameNumber: 1568
+ frameDelay: 0
+ Visemes:
+ - 0.022291709
+ - 0.0033393265
+ - 0.061765175
+ - 0.0041422215
+ - 0.17985366
+ - 0.031693287
+ - 0.011723496
+ - 0.011307247
+ - 0.115177974
+ - 0.40455168
+ - 0.08921213
+ - 0.0016531153
+ - 0.005264371
+ - 0.0121301515
+ - 0.045894533
+ laughterScore: 0
+ - frameNumber: 1569
+ frameDelay: 0
+ Visemes:
+ - 0.028562449
+ - 0.0026497322
+ - 0.04480133
+ - 0.003451091
+ - 0.12735215
+ - 0.023130432
+ - 0.00902004
+ - 0.007963928
+ - 0.0846565
+ - 0.39491564
+ - 0.17417298
+ - 0.0070373993
+ - 0.012095029
+ - 0.034903243
+ - 0.045288157
+ laughterScore: 0
+ - frameNumber: 1570
+ frameDelay: 0
+ Visemes:
+ - 0.024579529
+ - 0.0021902209
+ - 0.03143952
+ - 0.0026155354
+ - 0.09003092
+ - 0.016658612
+ - 0.0063951565
+ - 0.0055920826
+ - 0.07922012
+ - 0.2778002
+ - 0.3514919
+ - 0.011525619
+ - 0.016201315
+ - 0.051491592
+ - 0.032767724
+ laughterScore: 0
+ - frameNumber: 1571
+ frameDelay: 0
+ Visemes:
+ - 0.02140421
+ - 0.0030815788
+ - 0.022063622
+ - 0.0019447976
+ - 0.06339242
+ - 0.011847844
+ - 0.004498377
+ - 0.0039465134
+ - 0.174551
+ - 0.19458689
+ - 0.38966686
+ - 0.01380544
+ - 0.014382344
+ - 0.057653103
+ - 0.023175009
+ laughterScore: 0
+ - frameNumber: 1572
+ frameDelay: 0
+ Visemes:
+ - 0.018297546
+ - 0.0036209368
+ - 0.015488363
+ - 0.001861932
+ - 0.0447921
+ - 0.008375811
+ - 0.0031516324
+ - 0.002840514
+ - 0.39583045
+ - 0.13639791
+ - 0.2860973
+ - 0.009737264
+ - 0.010163368
+ - 0.04704567
+ - 0.016299244
+ laughterScore: 0
+ - frameNumber: 1573
+ frameDelay: 0
+ Visemes:
+ - 0.01669388
+ - 0.0033402476
+ - 0.011023946
+ - 0.006378824
+ - 0.032363255
+ - 0.006470427
+ - 0.002232138
+ - 0.002211884
+ - 0.53991485
+ - 0.095862076
+ - 0.2151271
+ - 0.006831414
+ - 0.0074867997
+ - 0.04235801
+ - 0.011705179
+ laughterScore: 0
+ - frameNumber: 1574
+ frameDelay: 0
+ Visemes:
+ - 0.014426451
+ - 0.004600984
+ - 0.008294397
+ - 0.0066932878
+ - 0.042208895
+ - 0.004937968
+ - 0.00188242
+ - 0.0018263736
+ - 0.6142083
+ - 0.06770936
+ - 0.16928136
+ - 0.0048006494
+ - 0.0059315353
+ - 0.044895016
+ - 0.008303071
+ laughterScore: 0
+ - frameNumber: 1575
+ frameDelay: 0
+ Visemes:
+ - 0.011268493
+ - 0.003671077
+ - 0.006014866
+ - 0.009375706
+ - 0.31203344
+ - 0.003928502
+ - 0.0040487493
+ - 0.0020003112
+ - 0.43519825
+ - 0.04745094
+ - 0.11961871
+ - 0.0033637774
+ - 0.004222182
+ - 0.03194643
+ - 0.005858592
+ laughterScore: 0
+ - frameNumber: 1576
+ frameDelay: 0
+ Visemes:
+ - 0.012878361
+ - 0.0035346341
+ - 0.00523056
+ - 0.013089195
+ - 0.48571348
+ - 0.0056373603
+ - 0.008537439
+ - 0.0038865185
+ - 0.30915967
+ - 0.033321004
+ - 0.08644308
+ - 0.0023885556
+ - 0.0030877048
+ - 0.022937153
+ - 0.004155325
+ laughterScore: 0
+ - frameNumber: 1577
+ frameDelay: 0
+ Visemes:
+ - 0.023095947
+ - 0.011177185
+ - 0.005776196
+ - 0.024517186
+ - 0.5327136
+ - 0.047638867
+ - 0.009088316
+ - 0.004089113
+ - 0.21932115
+ - 0.023586785
+ - 0.07097567
+ - 0.0017856959
+ - 0.0032017713
+ - 0.0199237
+ - 0.0031089261
+ laughterScore: 0
+ - frameNumber: 1578
+ frameDelay: 0
+ Visemes:
+ - 0.02535111
+ - 0.017190203
+ - 0.008181993
+ - 0.026768025
+ - 0.59361666
+ - 0.04395932
+ - 0.03832935
+ - 0.0051517026
+ - 0.15380208
+ - 0.016634688
+ - 0.050200406
+ - 0.0013270796
+ - 0.0027914483
+ - 0.0143532315
+ - 0.002342705
+ laughterScore: 0
+ - frameNumber: 1579
+ frameDelay: 0
+ Visemes:
+ - 0.026222758
+ - 0.014627138
+ - 0.008410072
+ - 0.022162614
+ - 0.6761266
+ - 0.0349295
+ - 0.03301322
+ - 0.010559473
+ - 0.10788646
+ - 0.011799889
+ - 0.037324518
+ - 0.001052514
+ - 0.0036452482
+ - 0.010139712
+ - 0.0021003291
+ laughterScore: 0
+ - frameNumber: 1580
+ frameDelay: 0
+ Visemes:
+ - 0.03222257
+ - 0.014827659
+ - 0.00850824
+ - 0.021096174
+ - 0.60608745
+ - 0.07450226
+ - 0.023710266
+ - 0.01110956
+ - 0.07685393
+ - 0.008661638
+ - 0.0979931
+ - 0.00093898457
+ - 0.004345396
+ - 0.0073378757
+ - 0.011804918
+ laughterScore: 0
+ - frameNumber: 1581
+ frameDelay: 0
+ Visemes:
+ - 0.030440371
+ - 0.010871508
+ - 0.006246762
+ - 0.016409967
+ - 0.52034515
+ - 0.18338788
+ - 0.017047793
+ - 0.00879351
+ - 0.05553001
+ - 0.0063175126
+ - 0.10603331
+ - 0.007604338
+ - 0.01380828
+ - 0.005254096
+ - 0.011909528
+ laughterScore: 0
+ - frameNumber: 1582
+ frameDelay: 0
+ Visemes:
+ - 0.028663134
+ - 0.007663916
+ - 0.0044094776
+ - 0.011596153
+ - 0.37317303
+ - 0.1556088
+ - 0.012260987
+ - 0.006190028
+ - 0.039042424
+ - 0.0045383237
+ - 0.09043852
+ - 0.15008964
+ - 0.100639924
+ - 0.0037180402
+ - 0.011967622
+ laughterScore: 0
+ - frameNumber: 1583
+ frameDelay: 0
+ Visemes:
+ - 0.024670897
+ - 0.005374427
+ - 0.0030938236
+ - 0.00815896
+ - 0.2616113
+ - 0.111131415
+ - 0.008596929
+ - 0.004339691
+ - 0.027358012
+ - 0.0032286188
+ - 0.06545958
+ - 0.365098
+ - 0.0993363
+ - 0.0026204926
+ - 0.009921523
+ laughterScore: 0
+ - frameNumber: 1584
+ frameDelay: 0
+ Visemes:
+ - 0.018954016
+ - 0.0037689775
+ - 0.002168371
+ - 0.0057150126
+ - 0.1831868
+ - 0.07828833
+ - 0.0060199923
+ - 0.0030385847
+ - 0.0191797
+ - 0.0027720495
+ - 0.04599882
+ - 0.5453977
+ - 0.07637024
+ - 0.0018484693
+ - 0.007292916
+ laughterScore: 0
+ - frameNumber: 1585
+ frameDelay: 0
+ Visemes:
+ - 0.013707639
+ - 0.002644622
+ - 0.0015196573
+ - 0.0040028924
+ - 0.12826963
+ - 0.054831944
+ - 0.0042143865
+ - 0.0021272898
+ - 0.013449868
+ - 0.006011352
+ - 0.032270815
+ - 0.67541516
+ - 0.05508775
+ - 0.0013078562
+ - 0.005139098
+ laughterScore: 0
+ - frameNumber: 1586
+ frameDelay: 0
+ Visemes:
+ - 0.0104144355
+ - 0.001864606
+ - 0.0010817995
+ - 0.002806408
+ - 0.089832686
+ - 0.038399745
+ - 0.002950225
+ - 0.0014893035
+ - 0.009473983
+ - 0.03738027
+ - 0.022872394
+ - 0.73434436
+ - 0.04248522
+ - 0.00096438354
+ - 0.0036401644
+ laughterScore: 0
+ - frameNumber: 1587
+ frameDelay: 0
+ Visemes:
+ - 0.011008754
+ - 0.0023694164
+ - 0.0024802368
+ - 0.001976885
+ - 0.063371815
+ - 0.029866977
+ - 0.0021018547
+ - 0.0011593148
+ - 0.011172028
+ - 0.27778673
+ - 0.021864459
+ - 0.5236142
+ - 0.04767578
+ - 0.0009444931
+ - 0.0026070399
+ laughterScore: 0
+ - frameNumber: 1588
+ frameDelay: 0
+ Visemes:
+ - 0.009662807
+ - 0.002017231
+ - 0.0019252123
+ - 0.0014013503
+ - 0.045545228
+ - 0.27455598
+ - 0.0015407853
+ - 0.0009883945
+ - 0.008187815
+ - 0.23393507
+ - 0.015970452
+ - 0.36742505
+ - 0.034311175
+ - 0.00068318506
+ - 0.0018502736
+ laughterScore: 0
+ - frameNumber: 1589
+ frameDelay: 0
+ Visemes:
+ - 0.008565
+ - 0.0014789454
+ - 0.0013744802
+ - 0.0010017026
+ - 0.03517449
+ - 0.4739299
+ - 0.0012676186
+ - 0.0008156974
+ - 0.0058895363
+ - 0.1753299
+ - 0.011457448
+ - 0.2574082
+ - 0.024476267
+ - 0.0004921299
+ - 0.00133869
+ laughterScore: 0
+ - frameNumber: 1590
+ frameDelay: 0
+ Visemes:
+ - 0.0089809075
+ - 0.0011241853
+ - 0.0009907761
+ - 0.0007741105
+ - 0.029326055
+ - 0.61398035
+ - 0.0009831216
+ - 0.0006268649
+ - 0.0041744947
+ - 0.13194025
+ - 0.008216456
+ - 0.18021615
+ - 0.017258264
+ - 0.00035620006
+ - 0.0010517858
+ laughterScore: 0
+ - frameNumber: 1591
+ frameDelay: 0
+ Visemes:
+ - 0.009024597
+ - 0.0009636467
+ - 0.00075378997
+ - 0.00071372447
+ - 0.02577244
+ - 0.71337134
+ - 0.00072462147
+ - 0.00053010066
+ - 0.0029546637
+ - 0.099928826
+ - 0.005928328
+ - 0.12615746
+ - 0.012144012
+ - 0.0002553909
+ - 0.0007770757
+ laughterScore: 0
+ - frameNumber: 1592
+ frameDelay: 0
+ Visemes:
+ - 0.011876095
+ - 0.0014879708
+ - 0.0007584336
+ - 0.0007273686
+ - 0.025855333
+ - 0.7661701
+ - 0.0005403469
+ - 0.00045644492
+ - 0.0021258814
+ - 0.0878368
+ - 0.0044718585
+ - 0.08833999
+ - 0.008558412
+ - 0.00019212635
+ - 0.0006028904
+ laughterScore: 0
+ - frameNumber: 1593
+ frameDelay: 0
+ Visemes:
+ - 0.011641646
+ - 0.0011902777
+ - 0.0005995687
+ - 0.00090808654
+ - 0.05746887
+ - 0.79168224
+ - 0.0010147875
+ - 0.00049401773
+ - 0.001508651
+ - 0.061801862
+ - 0.003202706
+ - 0.061854478
+ - 0.0060518896
+ - 0.00014333623
+ - 0.0004376366
+ laughterScore: 0
+ - frameNumber: 1594
+ frameDelay: 0
+ Visemes:
+ - 0.014004656
+ - 0.0012990257
+ - 0.0014055513
+ - 0.007867978
+ - 0.1027592
+ - 0.7263802
+ - 0.0012204167
+ - 0.0005244375
+ - 0.001499623
+ - 0.04840384
+ - 0.027096244
+ - 0.044088576
+ - 0.021743465
+ - 0.0006696087
+ - 0.0010372231
+ laughterScore: 0
+ - frameNumber: 1595
+ frameDelay: 0
+ Visemes:
+ - 0.011782762
+ - 0.0009827384
+ - 0.0010254805
+ - 0.006081374
+ - 0.07310576
+ - 0.5133701
+ - 0.0008853881
+ - 0.0003704851
+ - 0.0011585947
+ - 0.2893505
+ - 0.029581126
+ - 0.03255498
+ - 0.030481666
+ - 0.0032976095
+ - 0.0059714667
+ laughterScore: 0
+ - frameNumber: 1596
+ frameDelay: 0
+ Visemes:
+ - 0.009367154
+ - 0.0007084736
+ - 0.0007562148
+ - 0.004342713
+ - 0.0513066
+ - 0.3600122
+ - 0.0006257658
+ - 0.00026055067
+ - 0.0009546727
+ - 0.49255788
+ - 0.023993168
+ - 0.023283465
+ - 0.023509258
+ - 0.003184627
+ - 0.005137282
+ laughterScore: 0
+ - frameNumber: 1597
+ frameDelay: 0
+ Visemes:
+ - 0.009016513
+ - 0.00060578337
+ - 0.00071627455
+ - 0.0031529283
+ - 0.0364185
+ - 0.25254634
+ - 0.00048401635
+ - 0.00022854452
+ - 0.000994297
+ - 0.63342464
+ - 0.019655988
+ - 0.017220635
+ - 0.019350326
+ - 0.002365057
+ - 0.0038201592
+ laughterScore: 0
+ - frameNumber: 1598
+ frameDelay: 0
+ Visemes:
+ - 0.010189034
+ - 0.0006934176
+ - 0.0008866279
+ - 0.0025716145
+ - 0.026938038
+ - 0.17758092
+ - 0.00041455703
+ - 0.00035491172
+ - 0.0025984824
+ - 0.7265898
+ - 0.016744701
+ - 0.012977883
+ - 0.01669843
+ - 0.0019076674
+ - 0.0028539367
+ laughterScore: 0
+ - frameNumber: 1599
+ frameDelay: 0
+ Visemes:
+ - 0.01324749
+ - 0.00073742657
+ - 0.00084773486
+ - 0.002683871
+ - 0.050849743
+ - 0.12495437
+ - 0.0010056465
+ - 0.0016547294
+ - 0.022038983
+ - 0.7239538
+ - 0.01688056
+ - 0.015227197
+ - 0.021629535
+ - 0.0017961344
+ - 0.0024927962
+ laughterScore: 0
+ - frameNumber: 1600
+ frameDelay: 0
+ Visemes:
+ - 0.012640758
+ - 0.0007862941
+ - 0.0008406928
+ - 0.0019270586
+ - 0.0627549
+ - 0.08765932
+ - 0.0018191382
+ - 0.23558538
+ - 0.019152235
+ - 0.51716346
+ - 0.023712842
+ - 0.011427836
+ - 0.021084089
+ - 0.0013920387
+ - 0.002053987
+ laughterScore: 0
+ - frameNumber: 1601
+ frameDelay: 0
+ Visemes:
+ - 0.014517346
+ - 0.00065921736
+ - 0.0009575895
+ - 0.0017205939
+ - 0.074837714
+ - 0.061982915
+ - 0.0013658376
+ - 0.41964912
+ - 0.0141147375
+ - 0.36404634
+ - 0.019403797
+ - 0.008354359
+ - 0.015917022
+ - 0.0009862428
+ - 0.0014871336
+ laughterScore: 0
+ - frameNumber: 1602
+ frameDelay: 0
+ Visemes:
+ - 0.018896788
+ - 0.00063604675
+ - 0.000799282
+ - 0.0022539436
+ - 0.0654688
+ - 0.04364917
+ - 0.0011248961
+ - 0.56865275
+ - 0.010148264
+ - 0.2553861
+ - 0.013832307
+ - 0.0060056834
+ - 0.011382636
+ - 0.00070749427
+ - 0.0010558193
+ laughterScore: 0
+ - frameNumber: 1603
+ frameDelay: 0
+ Visemes:
+ - 0.022226103
+ - 0.0005862942
+ - 0.00064801937
+ - 0.006212488
+ - 0.12732725
+ - 0.030861534
+ - 0.00080967543
+ - 0.6007068
+ - 0.0074589127
+ - 0.1789736
+ - 0.010263827
+ - 0.0043419097
+ - 0.008298488
+ - 0.0005240318
+ - 0.00076108135
+ laughterScore: 0
+ - frameNumber: 1604
+ frameDelay: 0
+ Visemes:
+ - 0.029812055
+ - 0.0009947631
+ - 0.00065794616
+ - 0.014000926
+ - 0.22206691
+ - 0.022133414
+ - 0.00061416626
+ - 0.5592597
+ - 0.005979513
+ - 0.125358
+ - 0.007902681
+ - 0.0034878016
+ - 0.0065335976
+ - 0.00057229924
+ - 0.00062622933
+ laughterScore: 0
+ - frameNumber: 1605
+ frameDelay: 0
+ Visemes:
+ - 0.056863107
+ - 0.0058006016
+ - 0.00086178526
+ - 0.016453793
+ - 0.3006823
+ - 0.017142896
+ - 0.0005054675
+ - 0.47418436
+ - 0.010848455
+ - 0.08787144
+ - 0.013957214
+ - 0.004599564
+ - 0.008361377
+ - 0.0009199689
+ - 0.000947646
+ laughterScore: 0
+ - frameNumber: 1606
+ frameDelay: 0
+ Visemes:
+ - 0.110044174
+ - 0.0138674015
+ - 0.0012554369
+ - 0.017761216
+ - 0.33603424
+ - 0.019672764
+ - 0.0010229413
+ - 0.38495907
+ - 0.008699105
+ - 0.061681304
+ - 0.017490016
+ - 0.012993083
+ - 0.012343084
+ - 0.0012763215
+ - 0.00089988415
+ laughterScore: 0
+ - frameNumber: 1607
+ frameDelay: 0
+ Visemes:
+ - 0.16506973
+ - 0.016331859
+ - 0.0018167172
+ - 0.018834032
+ - 0.27802557
+ - 0.01760696
+ - 0.0013996249
+ - 0.36498016
+ - 0.0076269987
+ - 0.043451626
+ - 0.026983656
+ - 0.035928927
+ - 0.017794829
+ - 0.0031803257
+ - 0.0009690153
+ laughterScore: 0
+ - frameNumber: 1608
+ frameDelay: 0
+ Visemes:
+ - 0.27584624
+ - 0.014421396
+ - 0.0021453996
+ - 0.016582765
+ - 0.21386978
+ - 0.015385123
+ - 0.0013742298
+ - 0.3237663
+ - 0.0066016577
+ - 0.030552324
+ - 0.025433071
+ - 0.052043926
+ - 0.017032031
+ - 0.0035773802
+ - 0.0013684134
+ laughterScore: 0
+ - frameNumber: 1609
+ frameDelay: 0
+ Visemes:
+ - 0.43150866
+ - 0.012684445
+ - 0.002002335
+ - 0.013623749
+ - 0.15764767
+ - 0.011390564
+ - 0.0012081338
+ - 0.2549606
+ - 0.0063731605
+ - 0.021507392
+ - 0.019693315
+ - 0.046476517
+ - 0.01499858
+ - 0.0029158166
+ - 0.0030090567
+ laughterScore: 0
+ - frameNumber: 1610
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1611
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1612
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1613
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1614
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1615
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1616
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1617
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1618
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1619
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1620
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1621
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1622
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1623
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1624
+ frameDelay: 0
+ Visemes:
+ - 1
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ laughterScore: 0
+ - frameNumber: 1625
+ frameDelay: 0
+ Visemes:
+ - 0.4326374
+ - 0.09823957
+ - 0.004780448
+ - 0.07564538
+ - 0.020154918
+ - 0.0148359705
+ - 0.008765404
+ - 0.015609408
+ - 0.20915672
+ - 0.0032493346
+ - 0.014775831
+ - 0.038283266
+ - 0.049214307
+ - 0.003086518
+ - 0.011565513
+ laughterScore: 0
+ - frameNumber: 1626
+ frameDelay: 0
+ Visemes:
+ - 0.31692192
+ - 0.25056648
+ - 0.0034286638
+ - 0.05598577
+ - 0.01438419
+ - 0.010618476
+ - 0.006162571
+ - 0.010970364
+ - 0.24244177
+ - 0.002771386
+ - 0.010709949
+ - 0.026852965
+ - 0.035203487
+ - 0.0023392488
+ - 0.010642765
+ laughterScore: 0
+ - frameNumber: 1627
+ frameDelay: 0
+ Visemes:
+ - 0.25640658
+ - 0.38334888
+ - 0.0024535372
+ - 0.040685833
+ - 0.010341758
+ - 0.007609743
+ - 0.0043286434
+ - 0.007715157
+ - 0.22070448
+ - 0.0022483522
+ - 0.008244719
+ - 0.018874682
+ - 0.02487724
+ - 0.0018317631
+ - 0.010328636
+ laughterScore: 0
+ - frameNumber: 1628
+ frameDelay: 0
+ Visemes:
+ - 0.18545283
+ - 0.49890375
+ - 0.0017223629
+ - 0.028839089
+ - 0.0072654723
+ - 0.005377652
+ - 0.0030308191
+ - 0.0054068575
+ - 0.21687472
+ - 0.0015886618
+ - 0.006202523
+ - 0.013239418
+ - 0.017426813
+ - 0.001372756
+ - 0.0072962916
+ laughterScore: 0
+ - frameNumber: 1629
+ frameDelay: 0
+ Visemes:
+ - 0.14728992
+ - 0.55805886
+ - 0.0012280629
+ - 0.020540256
+ - 0.005129936
+ - 0.0038593113
+ - 0.00213235
+ - 0.0038240722
+ - 0.17658429
+ - 0.001152504
+ - 0.043419547
+ - 0.017665364
+ - 0.0127454735
+ - 0.0010687527
+ - 0.005301257
+ laughterScore: 0
+ - frameNumber: 1630
+ frameDelay: 0
+ Visemes:
+ - 0.112591535
+ - 0.39129663
+ - 0.0008622493
+ - 0.014478737
+ - 0.0036332444
+ - 0.0027591074
+ - 0.0014990721
+ - 0.0026874524
+ - 0.12478603
+ - 0.00084697094
+ - 0.2801547
+ - 0.047607947
+ - 0.011164237
+ - 0.0017937716
+ - 0.0038382632
+ laughterScore: 0
+ - frameNumber: 1631
+ frameDelay: 0
+ Visemes:
+ - 0.09643489
+ - 0.27521703
+ - 0.00065926136
+ - 0.010281467
+ - 0.0072022122
+ - 0.0022526237
+ - 0.0011005875
+ - 0.0019016409
+ - 0.08916039
+ - 0.0006935947
+ - 0.43475533
+ - 0.06522047
+ - 0.009780642
+ - 0.0023384904
+ - 0.0030013556
+ laughterScore: 0
+ - frameNumber: 1632
+ frameDelay: 0
+ Visemes:
+ - 0.07301489
+ - 0.1939823
+ - 0.0006484802
+ - 0.007962361
+ - 0.042143162
+ - 0.010908612
+ - 0.0011168992
+ - 0.001363809
+ - 0.062753685
+ - 0.00054691423
+ - 0.537258
+ - 0.057295986
+ - 0.006974324
+ - 0.0016856423
+ - 0.0023448328
+ laughterScore: 0
+ - frameNumber: 1633
+ frameDelay: 0
+ Visemes:
+ - 0.073098525
+ - 0.14068897
+ - 0.0005794554
+ - 0.013997445
+ - 0.17871453
+ - 0.046476822
+ - 0.06466088
+ - 0.0015507219
+ - 0.044564374
+ - 0.00040061603
+ - 0.38670784
+ - 0.040548764
+ - 0.0051267077
+ - 0.0011979837
+ - 0.0016863189
+ laughterScore: 0
+ - frameNumber: 1634
+ frameDelay: 0
+ Visemes:
+ - 0.054776035
+ - 0.0986745
+ - 0.00044733463
+ - 0.010179825
+ - 0.2037968
+ - 0.035012633
+ - 0.25343433
+ - 0.007241483
+ - 0.031238368
+ - 0.00028590058
+ - 0.27085516
+ - 0.028390644
+ - 0.0036428242
+ - 0.0008405116
+ - 0.0011836236
+ laughterScore: 0
+ - frameNumber: 1635
+ frameDelay: 0
+ Visemes:
+ - 0.04325081
+ - 0.06911098
+ - 0.000392312
+ - 0.007238111
+ - 0.15676963
+ - 0.024978157
+ - 0.40834546
+ - 0.05420705
+ - 0.02187776
+ - 0.00020573394
+ - 0.18970308
+ - 0.019883351
+ - 0.0026165466
+ - 0.0005904932
+ - 0.0008305419
+ laughterScore: 0
+ - frameNumber: 1636
+ frameDelay: 0
+ Visemes:
+ - 0.03318508
+ - 0.048378732
+ - 0.00029328253
+ - 0.005158391
+ - 0.11375493
+ - 0.017515054
+ - 0.5595478
+ - 0.056893677
+ - 0.015325592
+ - 0.00015185947
+ - 0.13291398
+ - 0.013921347
+ - 0.0019468728
+ - 0.00041864967
+ - 0.0005948578
+ laughterScore: 0
+ - frameNumber: 1637
+ frameDelay: 0
+ Visemes:
+ - 0.027100334
+ - 0.03389039
+ - 0.00029369627
+ - 0.0037038932
+ - 0.080799334
+ - 0.012440339
+ - 0.6717936
+ - 0.05043509
+ - 0.010805736
+ - 0.00028165954
+ - 0.09417932
+ - 0.009779035
+ - 0.0034174207
+ - 0.00032370968
+ - 0.00075648085
+ laughterScore: 0
+ - frameNumber: 1638
+ frameDelay: 0
+ Visemes:
+ - 0.022872545
+ - 0.024639519
+ - 0.0003922882
+ - 0.0028869729
+ - 0.05758281
+ - 0.009718577
+ - 0.5859405
+ - 0.03781112
+ - 0.008531662
+ - 0.0055149193
+ - 0.084779195
+ - 0.006984859
+ - 0.018255185
+ - 0.0005412968
+ - 0.1335486
+ laughterScore: 0
+ - frameNumber: 1639
+ frameDelay: 0
+ Visemes:
+ - 0.018410724
+ - 0.017324576
+ - 0.00030634296
+ - 0.0021399597
+ - 0.040474195
+ - 0.007066477
+ - 0.41466102
+ - 0.026706835
+ - 0.008186537
+ - 0.0046622814
+ - 0.091546156
+ - 0.004974928
+ - 0.02128889
+ - 0.00464677
+ - 0.33760434
+ laughterScore: 0
+ - frameNumber: 1640
+ frameDelay: 0
+ Visemes:
+ - 0.024601294
+ - 0.012264937
+ - 0.0002582104
+ - 0.0048663337
+ - 0.02916926
+ - 0.0057214536
+ - 0.29029486
+ - 0.01896349
+ - 0.23360391
+ - 0.005037195
+ - 0.06794178
+ - 0.004402973
+ - 0.015588762
+ - 0.0038732474
+ - 0.28341234
+ laughterScore: 0
+ - frameNumber: 1641
+ frameDelay: 0
+ Visemes:
+ - 0.023219427
+ - 0.008616558
+ - 0.0001856882
+ - 0.0040948256
+ - 0.020813968
+ - 0.0050886404
+ - 0.20321886
+ - 0.013326338
+ - 0.3769219
+ - 0.004145744
+ - 0.11493711
+ - 0.007677472
+ - 0.012653538
+ - 0.0029535582
+ - 0.20214641
+ laughterScore: 0
+ - frameNumber: 1642
+ frameDelay: 0
+ Visemes:
+ - 0.020671662
+ - 0.0060350215
+ - 0.00013263291
+ - 0.0029210295
+ - 0.014686325
+ - 0.0036413968
+ - 0.14226456
+ - 0.009340672
+ - 0.2691562
+ - 0.0029227799
+ - 0.36281115
+ - 0.012219725
+ - 0.009438652
+ - 0.0020734644
+ - 0.14168476
+ laughterScore: 0
+ - frameNumber: 1643
+ frameDelay: 0
+ Visemes:
+ - 0.02610513
+ - 0.0042288327
+ - 0.00009737015
+ - 0.002046916
+ - 0.010392371
+ - 0.0030985516
+ - 0.099594265
+ - 0.0065415585
+ - 0.18855377
+ - 0.002050177
+ - 0.5402222
+ - 0.009745508
+ - 0.0066847783
+ - 0.0014521276
+ - 0.0991864
+ laughterScore: 0
+ - frameNumber: 1644
+ frameDelay: 0
+ Visemes:
+ - 0.03044194
+ - 0.0029840944
+ - 0.00011619816
+ - 0.0014335023
+ - 0.0074389144
+ - 0.23302874
+ - 0.06973187
+ - 0.0045836708
+ - 0.1319994
+ - 0.0014458582
+ - 0.43463454
+ - 0.00694797
+ - 0.004725849
+ - 0.0010198633
+ - 0.069467545
+ laughterScore: 0
+ - frameNumber: 1645
+ frameDelay: 0
+ Visemes:
+ - 0.037015803
+ - 0.0021052568
+ - 0.00012685642
+ - 0.001005239
+ - 0.005437449
+ - 0.44517386
+ - 0.04883831
+ - 0.0032199693
+ - 0.09241168
+ - 0.0010265961
+ - 0.3059401
+ - 0.0049279584
+ - 0.0033919287
+ - 0.0007221239
+ - 0.04865686
+ laughterScore: 0
+ - frameNumber: 1646
+ frameDelay: 0
+ Visemes:
+ - 0.052480973
+ - 0.0015400106
+ - 0.00027815145
+ - 0.0007534001
+ - 0.0045312704
+ - 0.58245325
+ - 0.034258332
+ - 0.0022907774
+ - 0.06473333
+ - 0.0007353428
+ - 0.21511196
+ - 0.0034887
+ - 0.0024528904
+ - 0.00052226067
+ - 0.034369316
+ laughterScore: 0
+ - frameNumber: 1647
+ frameDelay: 0
+ Visemes:
+ - 0.05481901
+ - 0.0017860474
+ - 0.00034145737
+ - 0.014510425
+ - 0.011446064
+ - 0.66476506
+ - 0.02399998
+ - 0.0016225944
+ - 0.045375865
+ - 0.0005321101
+ - 0.15080436
+ - 0.0024595105
+ - 0.001775683
+ - 0.00039210988
+ - 0.025369728
+ laughterScore: 0
+ - frameNumber: 1648
+ frameDelay: 0
+ Visemes:
+ - 0.06919685
+ - 0.005523429
+ - 0.0004931948
+ - 0.05236185
+ - 0.028202605
+ - 0.6650764
+ - 0.016851446
+ - 0.0011675277
+ - 0.03189736
+ - 0.0004111876
+ - 0.10587984
+ - 0.0017460729
+ - 0.0013113357
+ - 0.00031355282
+ - 0.019567398
+ laughterScore: 0
+ - frameNumber: 1649
+ frameDelay: 0
+ Visemes:
+ - 0.055167552
+ - 0.03531008
+ - 0.0016565508
+ - 0.1901347
+ - 0.038914304
+ - 0.55231684
+ - 0.011858425
+ - 0.0008782535
+ - 0.02238426
+ - 0.00031142368
+ - 0.07449726
+ - 0.0012536664
+ - 0.001002244
+ - 0.00024179362
+ - 0.014072666
+ laughterScore: 0
+ - frameNumber: 1650
+ frameDelay: 0
+ Visemes:
+ - 0.040613692
+ - 0.026110284
+ - 0.0012462988
+ - 0.37797588
+ - 0.030364428
+ - 0.38686728
+ - 0.008306245
+ - 0.00062269095
+ - 0.015749404
+ - 0.00032538606
+ - 0.0968478
+ - 0.0015349988
+ - 0.0032122727
+ - 0.0002070215
+ - 0.010016344
+ laughterScore: 0
+ - frameNumber: 1651
+ frameDelay: 0
+ Visemes:
+ - 0.03447516
+ - 0.018593453
+ - 0.00095373916
+ - 0.3797755
+ - 0.023568254
+ - 0.2711191
+ - 0.0058467924
+ - 0.00050879637
+ - 0.01116518
+ - 0.0012448169
+ - 0.16398166
+ - 0.023748724
+ - 0.05733934
+ - 0.00021252464
+ - 0.0074669984
+ laughterScore: 0
+ - frameNumber: 1652
+ frameDelay: 0
+ Visemes:
+ - 0.028409237
+ - 0.0130684525
+ - 0.0008049074
+ - 0.2679226
+ - 0.018424444
+ - 0.18982317
+ - 0.0041154916
+ - 0.00042869104
+ - 0.008069381
+ - 0.0012763524
+ - 0.15074271
+ - 0.04293741
+ - 0.26804346
+ - 0.00038121198
+ - 0.0055525503
+ laughterScore: 0
+ - frameNumber: 1653
+ frameDelay: 0
+ Visemes:
+ - 0.022211954
+ - 0.00915963
+ - 0.00068047206
+ - 0.18758477
+ - 0.021048468
+ - 0.13303173
+ - 0.002884574
+ - 0.005680232
+ - 0.0062709656
+ - 0.0017569531
+ - 0.16160512
+ - 0.031128868
+ - 0.41267675
+ - 0.0003500671
+ - 0.003929507
+ laughterScore: 0
+ - frameNumber: 1654
+ frameDelay: 0
+ Visemes:
+ - 0.020226222
+ - 0.006441312
+ - 0.0007277273
+ - 0.13171162
+ - 0.031324603
+ - 0.09338752
+ - 0.002030865
+ - 0.24682343
+ - 0.0052174977
+ - 0.0015176435
+ - 0.14475454
+ - 0.0219059
+ - 0.29090616
+ - 0.0002460763
+ - 0.002778949
+ laughterScore: 0
+ - frameNumber: 1655
+ frameDelay: 0
+ Visemes:
+ - 0.016944055
+ - 0.0045211995
+ - 0.00060534617
+ - 0.09263279
+ - 0.02373783
+ - 0.06540352
+ - 0.00143783
+ - 0.46690154
+ - 0.0036801414
+ - 0.0010691958
+ - 0.10187368
+ - 0.015346477
+ - 0.20371743
+ - 0.0001756628
+ - 0.001953317
+ laughterScore: 0
+ - frameNumber: 1656
+ frameDelay: 0
+ Visemes:
+ - 0.014027642
+ - 0.0031744684
+ - 0.0004403205
+ - 0.06510863
+ - 0.020071546
+ - 0.0458518
+ - 0.0010201731
+ - 0.619151
+ - 0.00261073
+ - 0.0007552355
+ - 0.07266797
+ - 0.010751439
+ - 0.1428665
+ - 0.00012480903
+ - 0.0013777467
+ laughterScore: 0
+ - frameNumber: 1657
+ frameDelay: 0
+ Visemes:
+ - 0.01945586
+ - 0.0041722045
+ - 0.00039702747
+ - 0.048771378
+ - 0.05075195
+ - 0.03429152
+ - 0.0007452845
+ - 0.6756917
+ - 0.0022214232
+ - 0.00053588557
+ - 0.053699873
+ - 0.0075568925
+ - 0.100624844
+ - 0.00009089114
+ - 0.0009932239
+ laughterScore: 0
+ - frameNumber: 1658
+ frameDelay: 0
+ Visemes:
+ - 0.031026125
+ - 0.0062977797
+ - 0.00040615303
+ - 0.10901244
+ - 0.17073956
+ - 0.025617197
+ - 0.0005791564
+ - 0.53542906
+ - 0.0037659067
+ - 0.0003857016
+ - 0.038530707
+ - 0.0055100946
+ - 0.07185627
+ - 0.0000801087
+ - 0.0007636988
+ laughterScore: 0
+ - frameNumber: 1659
+ frameDelay: 0
+ Visemes:
+ - 0.02553728
+ - 0.0044635036
+ - 0.0003079756
+ - 0.08874732
+ - 0.39884603
+ - 0.018100334
+ - 0.00082040497
+ - 0.37825608
+ - 0.002726767
+ - 0.0002782584
+ - 0.027028318
+ - 0.003874391
+ - 0.050393786
+ - 0.00007051922
+ - 0.0005489905
+ laughterScore: 0
+ - frameNumber: 1660
+ frameDelay: 0
+ Visemes:
+ - 0.02370285
+ - 0.0032987162
+ - 0.0003607911
+ - 0.07357116
+ - 0.5406896
+ - 0.012873466
+ - 0.00059951266
+ - 0.2650715
+ - 0.002134772
+ - 0.00043885625
+ - 0.026197817
+ - 0.0073181377
+ - 0.043151487
+ - 0.00010889716
+ - 0.00048239535
+ laughterScore: 0
+ - frameNumber: 1661
+ frameDelay: 0
+ Visemes:
+ - 0.024129037
+ - 0.0031069762
+ - 0.0005970894
+ - 0.06597137
+ - 0.47354293
+ - 0.0096766725
+ - 0.00067815883
+ - 0.1861503
+ - 0.0018961706
+ - 0.0018880118
+ - 0.06691757
+ - 0.10248044
+ - 0.06071577
+ - 0.0016229303
+ - 0.0006265504
+ laughterScore: 0
+ - frameNumber: 1662
+ frameDelay: 0
+ Visemes:
+ - 0.023168048
+ - 0.0054438855
+ - 0.00057074137
+ - 0.046627373
+ - 0.33679
+ - 0.007509942
+ - 0.0005161318
+ - 0.13033764
+ - 0.0026097838
+ - 0.003686268
+ - 0.20445985
+ - 0.18305376
+ - 0.04674788
+ - 0.007851317
+ - 0.00062736426
+ laughterScore: 0
+ - frameNumber: 1663
+ frameDelay: 0
+ Visemes:
+ - 0.028911643
+ - 0.016767964
+ - 0.0013759298
+ - 0.0330078
+ - 0.24039184
+ - 0.0061438233
+ - 0.00040626648
+ - 0.09136943
+ - 0.005069603
+ - 0.009429588
+ - 0.22557813
+ - 0.27981943
+ - 0.04205477
+ - 0.019096328
+ - 0.00057740597
+ laughterScore: 0
+ - frameNumber: 1664
+ frameDelay: 0
+ Visemes:
+ - 0.035754938
+ - 0.10737595
+ - 0.036070623
+ - 0.023140943
+ - 0.18293785
+ - 0.0050847405
+ - 0.00029304862
+ - 0.06397689
+ - 0.016921945
+ - 0.015177387
+ - 0.18660198
+ - 0.27081326
+ - 0.041728154
+ - 0.013502854
+ - 0.0006193806
+ laughterScore: 0
+ - frameNumber: 1665
+ frameDelay: 0
+ Visemes:
+ - 0.031633683
+ - 0.29397604
+ - 0.027951382
+ - 0.016327614
+ - 0.14567766
+ - 0.0042038583
+ - 0.00020988227
+ - 0.044835996
+ - 0.06395667
+ - 0.0106694205
+ - 0.13156836
+ - 0.1896617
+ - 0.029411608
+ - 0.009467398
+ - 0.00044871468
+ laughterScore: 0
+ - frameNumber: 1666
+ frameDelay: 0
+ Visemes:
+ - 0.0316322
+ - 0.47086966
+ - 0.019748101
+ - 0.012006633
+ - 0.10593448
+ - 0.0031513288
+ - 0.00015684511
+ - 0.031426612
+ - 0.061479732
+ - 0.0075145587
+ - 0.09464285
+ - 0.13294147
+ - 0.02144756
+ - 0.006640692
+ - 0.00040727918
+ laughterScore: 0
+ - frameNumber: 1667
+ frameDelay: 0
+ Visemes:
+ - 0.030057399
+ - 0.5419156
+ - 0.015691735
+ - 0.009561591
+ - 0.085422985
+ - 0.0026538782
+ - 0.00022444167
+ - 0.02217587
+ - 0.05748747
+ - 0.006134694
+ - 0.09620137
+ - 0.095426016
+ - 0.029399283
+ - 0.004873712
+ - 0.0027739657
+ laughterScore: 0
+ - frameNumber: 1668
+ frameDelay: 0
+ Visemes:
+ - 0.02462821
+ - 0.38464627
+ - 0.01123675
+ - 0.00842111
+ - 0.060864355
+ - 0.0023821085
+ - 0.00017744386
+ - 0.01564222
+ - 0.043579772
+ - 0.005382123
+ - 0.26887876
+ - 0.08164454
+ - 0.082670264
+ - 0.0069937566
+ - 0.0028523116
+ laughterScore: 0
+ - frameNumber: 1669
+ frameDelay: 0
+ Visemes:
+ - 0.022077145
+ - 0.27109444
+ - 0.008106643
+ - 0.007715325
+ - 0.04368564
+ - 0.0023539735
+ - 0.00014520447
+ - 0.011215313
+ - 0.035037674
+ - 0.008515917
+ - 0.33245167
+ - 0.07573357
+ - 0.15488721
+ - 0.017286737
+ - 0.009693529
+ laughterScore: 0
+ - frameNumber: 1670
+ frameDelay: 0
+ Visemes:
+ - 0.022547312
+ - 0.19067866
+ - 0.006748719
+ - 0.0076069604
+ - 0.03444413
+ - 0.0022684454
+ - 0.000118167845
+ - 0.00805083
+ - 0.029636139
+ - 0.012573777
+ - 0.4144405
+ - 0.057064045
+ - 0.13618448
+ - 0.059141256
+ - 0.018496558
+ laughterScore: 0
+ - frameNumber: 1671
+ frameDelay: 0
+ Visemes:
+ - 0.024417859
+ - 0.13375962
+ - 0.0064104036
+ - 0.0060044485
+ - 0.033200424
+ - 0.0023277798
+ - 0.000089150846
+ - 0.0057924073
+ - 0.034941457
+ - 0.012391709
+ - 0.44219622
+ - 0.053854577
+ - 0.11096373
+ - 0.114409626
+ - 0.01924055
+ laughterScore: 0
+ - frameNumber: 1672
+ frameDelay: 0
+ Visemes:
+ - 0.027765278
+ - 0.09415244
+ - 0.0055815373
+ - 0.0044170837
+ - 0.0409766
+ - 0.0033071286
+ - 0.00008927416
+ - 0.0041183676
+ - 0.11657961
+ - 0.011775827
+ - 0.3817839
+ - 0.05525902
+ - 0.09387024
+ - 0.13453941
+ - 0.025784262
+ laughterScore: 0
+ - frameNumber: 1673
+ frameDelay: 0
+ Visemes:
+ - 0.027058834
+ - 0.066103116
+ - 0.0045703473
+ - 0.0031921428
+ - 0.031342983
+ - 0.0049944613
+ - 0.00006934126
+ - 0.002932096
+ - 0.17991328
+ - 0.0087933075
+ - 0.27989534
+ - 0.0434024
+ - 0.0705686
+ - 0.24994831
+ - 0.027215432
+ laughterScore: 0
+ - frameNumber: 1674
+ frameDelay: 0
+ Visemes:
+ - 0.024068763
+ - 0.046456397
+ - 0.0035559316
+ - 0.0023324357
+ - 0.022615911
+ - 0.0043731052
+ - 0.000052110587
+ - 0.0020820324
+ - 0.21010622
+ - 0.0064356206
+ - 0.20096564
+ - 0.03200193
+ - 0.052304305
+ - 0.36830378
+ - 0.0243458
+ laughterScore: 0
+ - frameNumber: 1675
+ frameDelay: 0
+ Visemes:
+ - 0.024176147
+ - 0.032652013
+ - 0.0026367123
+ - 0.0029256563
+ - 0.018536767
+ - 0.005645993
+ - 0.00014734581
+ - 0.0015851838
+ - 0.18613234
+ - 0.004881187
+ - 0.16251808
+ - 0.022836503
+ - 0.042610236
+ - 0.45276636
+ - 0.039949447
+ laughterScore: 0
+ - frameNumber: 1676
+ frameDelay: 0
+ Visemes:
+ - 0.03006421
+ - 0.022906082
+ - 0.001901035
+ - 0.0026096199
+ - 0.021588678
+ - 0.0050577195
+ - 0.00029239446
+ - 0.0013359783
+ - 0.1537514
+ - 0.0036522076
+ - 0.12094063
+ - 0.022991516
+ - 0.14529705
+ - 0.43872473
+ - 0.028886713
+ laughterScore: 0
+ - frameNumber: 1677
+ frameDelay: 0
+ Visemes:
+ - 0.03358429
+ - 0.016069902
+ - 0.0013398651
+ - 0.0022883094
+ - 0.031435896
+ - 0.0044568526
+ - 0.0008514854
+ - 0.0011971745
+ - 0.110173196
+ - 0.0027133424
+ - 0.09164445
+ - 0.02791024
+ - 0.34344906
+ - 0.31246147
+ - 0.020424468
+ laughterScore: 0
+ - frameNumber: 1678
+ frameDelay: 0
+ Visemes:
+ - 0.027832313
+ - 0.011258642
+ - 0.0009452559
+ - 0.0021382058
+ - 0.027357459
+ - 0.0033684392
+ - 0.001132167
+ - 0.0013713221
+ - 0.077497825
+ - 0.0019367789
+ - 0.06479863
+ - 0.034536287
+ - 0.51243
+ - 0.21896134
+ - 0.014435342
+ laughterScore: 0
+ - frameNumber: 1679
+ frameDelay: 0
+ Visemes:
+ - 0.021375895
+ - 0.007908471
+ - 0.0006768584
+ - 0.0019934303
+ - 0.019660296
+ - 0.0024763574
+ - 0.00092897913
+ - 0.0010366051
+ - 0.054586288
+ - 0.0013668855
+ - 0.04598831
+ - 0.03866796
+ - 0.6397472
+ - 0.1533502
+ - 0.010236272
+ laughterScore: 0
+ - frameNumber: 1680
+ frameDelay: 0
+ Visemes:
+ - 0.0176596
+ - 0.0055537787
+ - 0.0005386485
+ - 0.0017193299
+ - 0.01614023
+ - 0.0018244184
+ - 0.0008252475
+ - 0.0010201142
+ - 0.038451497
+ - 0.0010314748
+ - 0.03287965
+ - 0.03464327
+ - 0.7329725
+ - 0.10738973
+ - 0.007350499
+ laughterScore: 0
+ - frameNumber: 1681
+ frameDelay: 0
+ Visemes:
+ - 0.016110446
+ - 0.0038938136
+ - 0.0007947183
+ - 0.0015050655
+ - 0.036254983
+ - 0.0013047666
+ - 0.0010489952
+ - 0.010541187
+ - 0.02741001
+ - 0.0010292304
+ - 0.024759896
+ - 0.02876484
+ - 0.76615024
+ - 0.07521112
+ - 0.0052206772
+ laughterScore: 0
+ - frameNumber: 1682
+ frameDelay: 0
+ Visemes:
+ - 0.020345034
+ - 0.0027543188
+ - 0.0006665318
+ - 0.0014587677
+ - 0.090627044
+ - 0.0009911014
+ - 0.0007758406
+ - 0.1965011
+ - 0.023014242
+ - 0.0008493139
+ - 0.020278199
+ - 0.02425412
+ - 0.56107664
+ - 0.052710384
+ - 0.0036972857
+ laughterScore: 0
+ - frameNumber: 1683
+ frameDelay: 0
+ Visemes:
+ - 0.019109283
+ - 0.0019755126
+ - 0.0007192042
+ - 0.0011983253
+ - 0.11783238
+ - 0.00074109074
+ - 0.0005790161
+ - 0.37697238
+ - 0.016292052
+ - 0.00061401655
+ - 0.014361997
+ - 0.016999371
+ - 0.39310357
+ - 0.036898017
+ - 0.002603766
+ laughterScore: 0
+ - frameNumber: 1684
+ frameDelay: 0
+ Visemes:
+ - 0.0171444
+ - 0.001558296
+ - 0.00056597113
+ - 0.0015005437
+ - 0.089662634
+ - 0.0006873314
+ - 0.0005580571
+ - 0.5512562
+ - 0.011489847
+ - 0.00045883105
+ - 0.010144215
+ - 0.011911715
+ - 0.27538437
+ - 0.025829127
+ - 0.0018485013
+ laughterScore: 0
+ - frameNumber: 1685
+ frameDelay: 0
+ Visemes:
+ - 0.02175197
+ - 0.00605106
+ - 0.0005911134
+ - 0.014598234
+ - 0.122710094
+ - 0.016044606
+ - 0.003414957
+ - 0.57823676
+ - 0.008289723
+ - 0.00035091746
+ - 0.00731872
+ - 0.008351211
+ - 0.19290806
+ - 0.018081328
+ - 0.0013012488
+ laughterScore: 0
+ - frameNumber: 1686
+ frameDelay: 0
+ Visemes:
+ - 0.021920368
+ - 0.0053553316
+ - 0.00054733356
+ - 0.063715585
+ - 0.28548965
+ - 0.01186396
+ - 0.029807132
+ - 0.41486526
+ - 0.006455181
+ - 0.0002537661
+ - 0.0052074175
+ - 0.0058488613
+ - 0.13509035
+ - 0.012665109
+ - 0.00091473444
+ laughterScore: 0
+ - frameNumber: 1687
+ frameDelay: 0
+ Visemes:
+ - 0.030285332
+ - 0.004005788
+ - 0.00042868682
+ - 0.08818014
+ - 0.3469882
+ - 0.008533467
+ - 0.10825751
+ - 0.29521698
+ - 0.0051453556
+ - 0.00021699016
+ - 0.0037351616
+ - 0.0041078534
+ - 0.095340446
+ - 0.008887026
+ - 0.00067109364
+ laughterScore: 0
+ - frameNumber: 1688
+ frameDelay: 0
+ Visemes:
+ - 0.025545133
+ - 0.0032612684
+ - 0.0005663147
+ - 0.07725022
+ - 0.47026438
+ - 0.00632971
+ - 0.113488734
+ - 0.20730491
+ - 0.0036500168
+ - 0.0006931653
+ - 0.0048780683
+ - 0.0029684675
+ - 0.074975185
+ - 0.0062293014
+ - 0.002595155
+ laughterScore: 0
+ - frameNumber: 1689
+ frameDelay: 0
+ Visemes:
+ - 0.018811885
+ - 0.0023184747
+ - 0.0004065559
+ - 0.0541672
+ - 0.34738064
+ - 0.0044583734
+ - 0.0964928
+ - 0.14514256
+ - 0.0025667995
+ - 0.0019226965
+ - 0.010392562
+ - 0.0021439441
+ - 0.06370972
+ - 0.0047694086
+ - 0.24531645
+ laughterScore: 0
+ - frameNumber: 1690
+ frameDelay: 0
+ Visemes:
+ - 0.015589207
+ - 0.0016508009
+ - 0.0002907491
+ - 0.038005285
+ - 0.24893676
+ - 0.0031728318
+ - 0.0835781
+ - 0.101646565
+ - 0.0018299539
+ - 0.0022066473
+ - 0.009797826
+ - 0.0018101227
+ - 0.099365175
+ - 0.004489054
+ - 0.38763094
+ laughterScore: 0
+ - frameNumber: 1691
+ frameDelay: 0
+ Visemes:
+ - 0.012609828
+ - 0.0012007137
+ - 0.00022507754
+ - 0.026629692
+ - 0.17445718
+ - 0.0022404236
+ - 0.05880784
+ - 0.07118713
+ - 0.0014134946
+ - 0.0018419096
+ - 0.008366263
+ - 0.0013450639
+ - 0.088808164
+ - 0.004738564
+ - 0.54612863
+ laughterScore: 0
+ - frameNumber: 1692
+ frameDelay: 0
+ Visemes:
+ - 0.013427609
+ - 0.0009707125
+ - 0.00049221405
+ - 0.018780943
+ - 0.12273898
+ - 0.0023109731
+ - 0.041179128
+ - 0.04983751
+ - 0.0017158446
+ - 0.004089744
+ - 0.010031162
+ - 0.0070782932
+ - 0.090276055
+ - 0.005648491
+ - 0.63142234
+ laughterScore: 0
+ - frameNumber: 1693
+ frameDelay: 0
+ Visemes:
+ - 0.0114653865
+ - 0.0009933006
+ - 0.0010275149
+ - 0.013432571
+ - 0.08608806
+ - 0.003998322
+ - 0.02883855
+ - 0.03488748
+ - 0.0015067713
+ - 0.0037286463
+ - 0.013222569
+ - 0.018746302
+ - 0.3270355
+ - 0.004266084
+ - 0.45076296
+ laughterScore: 0
+ - frameNumber: 1694
+ frameDelay: 0
+ Visemes:
+ - 0.009364433
+ - 0.0007618861
+ - 0.00086234335
+ - 0.0095902225
+ - 0.060395442
+ - 0.0042030406
+ - 0.020189231
+ - 0.024421759
+ - 0.0011634406
+ - 0.0026755573
+ - 0.011863301
+ - 0.039446153
+ - 0.49497825
+ - 0.0033407272
+ - 0.31674418
+ laughterScore: 0
+ - frameNumber: 1695
+ frameDelay: 0
+ Visemes:
+ - 0.0076985736
+ - 0.00055489823
+ - 0.0006338491
+ - 0.0067831017
+ - 0.04237164
+ - 0.0038173904
+ - 0.014133811
+ - 0.01709605
+ - 0.001317861
+ - 0.0019290922
+ - 0.009113297
+ - 0.043956794
+ - 0.6252009
+ - 0.0031585845
+ - 0.22223413
+ laughterScore: 0
+ - frameNumber: 1696
+ frameDelay: 0
+ Visemes:
+ - 0.0056157317
+ - 0.00040566738
+ - 0.00044800772
+ - 0.004750355
+ - 0.029716315
+ - 0.059166264
+ - 0.009895092
+ - 0.01196779
+ - 0.0013776545
+ - 0.0013673332
+ - 0.006556239
+ - 0.031202942
+ - 0.6797349
+ - 0.0022181268
+ - 0.15557759
+ laughterScore: 0
+ - frameNumber: 1697
+ frameDelay: 0
+ Visemes:
+ - 0.00447434
+ - 0.0004616805
+ - 0.0003173679
+ - 0.003329356
+ - 0.02086685
+ - 0.33164677
+ - 0.0069273016
+ - 0.008378941
+ - 0.005354036
+ - 0.0009675406
+ - 0.0048997225
+ - 0.021868184
+ - 0.48004475
+ - 0.0015533452
+ - 0.10890983
+ laughterScore: 0
+ - frameNumber: 1698
+ frameDelay: 0
+ Visemes:
+ - 0.0048389155
+ - 0.000714581
+ - 0.00022585125
+ - 0.0023466109
+ - 0.01481323
+ - 0.5157385
+ - 0.004851233
+ - 0.005870085
+ - 0.017308699
+ - 0.00068069773
+ - 0.0036305424
+ - 0.015346861
+ - 0.33630484
+ - 0.0010875905
+ - 0.076241806
+ laughterScore: 0
+ - frameNumber: 1699
+ frameDelay: 0
+ Visemes:
+ - 0.0068638786
+ - 0.0012831939
+ - 0.00024568418
+ - 0.002221032
+ - 0.011905018
+ - 0.634773
+ - 0.0034277847
+ - 0.0041482216
+ - 0.028368598
+ - 0.000501787
+ - 0.0052572014
+ - 0.010867118
+ - 0.23593439
+ - 0.000764344
+ - 0.05343873
+ laughterScore: 0
+ - frameNumber: 1700
+ frameDelay: 0
+ Visemes:
+ - 0.0091375
+ - 0.113350414
+ - 0.00496512
+ - 0.0037338107
+ - 0.019799156
+ - 0.58847916
+ - 0.0029471659
+ - 0.003160519
+ - 0.027485318
+ - 0.0027256913
+ - 0.012636409
+ - 0.007650793
+ - 0.16536173
+ - 0.00054040103
+ - 0.03802688
+ laughterScore: 0
+ - frameNumber: 1701
+ frameDelay: 0
+ Visemes:
+ - 0.0118324915
+ - 0.28930765
+ - 0.0081286235
+ - 0.005143309
+ - 0.017825212
+ - 0.46264288
+ - 0.002339667
+ - 0.0024576024
+ - 0.0204997
+ - 0.017789146
+ - 0.009908143
+ - 0.0053709797
+ - 0.11595009
+ - 0.00039409366
+ - 0.0304105
+ laughterScore: 0
+ - frameNumber: 1702
+ frameDelay: 0
+ Visemes:
+ - 0.008998784
+ - 0.2528688
+ - 0.0064919186
+ - 0.0037187224
+ - 0.012516146
+ - 0.32905594
+ - 0.0016404073
+ - 0.0017228662
+ - 0.014408429
+ - 0.25430357
+ - 0.0070482134
+ - 0.0038194936
+ - 0.08117355
+ - 0.00029737985
+ - 0.021935824
+ laughterScore: 0
+ - frameNumber: 1703
+ frameDelay: 0
+ Visemes:
+ - 0.007938224
+ - 0.17887096
+ - 0.0045895134
+ - 0.002617434
+ - 0.008780161
+ - 0.23041125
+ - 0.0011493814
+ - 0.0012112632
+ - 0.0101161795
+ - 0.47243083
+ - 0.005130853
+ - 0.0042074802
+ - 0.056854032
+ - 0.00022224731
+ - 0.015470212
+ laughterScore: 0
+ - frameNumber: 1704
+ frameDelay: 0
+ Visemes:
+ - 0.0135057075
+ - 0.12524927
+ - 0.003229973
+ - 0.0018376375
+ - 0.0061939056
+ - 0.16155833
+ - 0.0008089861
+ - 0.0008493026
+ - 0.0071124276
+ - 0.39294565
+ - 0.16254953
+ - 0.072028615
+ - 0.04110779
+ - 0.00018593989
+ - 0.0108369775
+ laughterScore: 0
+ - frameNumber: 1705
+ frameDelay: 0
+ Visemes:
+ - 0.012269545
+ - 0.087676436
+ - 0.002262391
+ - 0.0012909487
+ - 0.004445326
+ - 0.11310701
+ - 0.0005742799
+ - 0.00059504894
+ - 0.004982465
+ - 0.27554202
+ - 0.37954283
+ - 0.080555215
+ - 0.029425595
+ - 0.00014460586
+ - 0.007586345
+ laughterScore: 0
+ - frameNumber: 1706
+ frameDelay: 0
+ Visemes:
+ - 0.011384368
+ - 0.061379828
+ - 0.0015852712
+ - 0.0009055258
+ - 0.004178194
+ - 0.07924991
+ - 0.00040969826
+ - 0.00042049043
+ - 0.0034930564
+ - 0.19294584
+ - 0.5555303
+ - 0.06228103
+ - 0.020819744
+ - 0.00010402016
+ - 0.0053127347
+ laughterScore: 0
+ - frameNumber: 1707
+ frameDelay: 0
+ Visemes:
+ - 0.011029856
+ - 0.043012276
+ - 0.0011211068
+ - 0.00064358365
+ - 0.05269026
+ - 0.055553548
+ - 0.0002886354
+ - 0.00030670455
+ - 0.0025695318
+ - 0.13509418
+ - 0.6280063
+ - 0.050469115
+ - 0.015348686
+ - 0.00010887548
+ - 0.0037574205
+ laughterScore: 0
+ - frameNumber: 1708
+ frameDelay: 0
+ Visemes:
+ - 0.01025928
+ - 0.030144664
+ - 0.0008142831
+ - 0.00049953343
+ - 0.17717588
+ - 0.03898273
+ - 0.00020390176
+ - 0.00023509389
+ - 0.0020591845
+ - 0.09458849
+ - 0.5890977
+ - 0.04169894
+ - 0.011391512
+ - 0.00016317115
+ - 0.0026857404
+ laughterScore: 0
+ - frameNumber: 1709
+ frameDelay: 0
+ Visemes:
+ - 0.00764376
+ - 0.021104436
+ - 0.0005732816
+ - 0.00035426408
+ - 0.41652548
+ - 0.02733045
+ - 0.00014395952
+ - 0.00017263395
+ - 0.0016111695
+ - 0.06621635
+ - 0.41839105
+ - 0.029818365
+ - 0.008099073
+ - 0.00012374179
+ - 0.0018920464
+ laughterScore: 0
+ - frameNumber: 1710
+ frameDelay: 0
+ Visemes:
+ - 0.005595039
+ - 0.014780703
+ - 0.00040191502
+ - 0.0002487124
+ - 0.59047544
+ - 0.019177647
+ - 0.0001014787
+ - 0.00012483551
+ - 0.001194893
+ - 0.046352223
+ - 0.29345775
+ - 0.020978976
+ - 0.005694094
+ - 0.00008722919
+ - 0.0013290951
+ laughterScore: 0
+ - frameNumber: 1711
+ frameDelay: 0
+ Visemes:
+ - 0.00436395
+ - 0.010427894
+ - 0.00028554784
+ - 0.00019281672
+ - 0.7091142
+ - 0.013611743
+ - 0.00008153118
+ - 0.00010264393
+ - 0.0040136925
+ - 0.032449417
+ - 0.20554698
+ - 0.014712728
+ - 0.0040820027
+ - 0.000061762155
+ - 0.0009530999
+ laughterScore: 0
+ - frameNumber: 1712
+ frameDelay: 0
+ Visemes:
+ - 0.0112152975
+ - 0.013651627
+ - 0.00028111765
+ - 0.0011962429
+ - 0.5841553
+ - 0.009944413
+ - 0.000543588
+ - 0.00019380011
+ - 0.19061333
+ - 0.022756174
+ - 0.1487477
+ - 0.011376026
+ - 0.004344857
+ - 0.000050228693
+ - 0.0009303628
+ laughterScore: 0
+ - frameNumber: 1713
+ frameDelay: 0
+ Visemes:
+ - 0.009359646
+ - 0.00967558
+ - 0.00020339226
+ - 0.0008808374
+ - 0.41085288
+ - 0.0071267076
+ - 0.000383246
+ - 0.00014073156
+ - 0.42899328
+ - 0.015933786
+ - 0.10435244
+ - 0.008200229
+ - 0.0032009073
+ - 0.000040918836
+ - 0.00065550185
+ laughterScore: 0
+ - frameNumber: 1714
+ frameDelay: 0
+ Visemes:
+ - 0.007746935
+ - 0.006875518
+ - 0.0001451063
+ - 0.00070074695
+ - 0.28805685
+ - 0.005143824
+ - 0.00026930534
+ - 0.00010086848
+ - 0.58288264
+ - 0.011158542
+ - 0.077879414
+ - 0.01564505
+ - 0.0028327252
+ - 0.000101018755
+ - 0.0004615108
+ laughterScore: 0
+ - frameNumber: 1715
+ frameDelay: 0
+ Visemes:
+ - 0.006211487
+ - 0.0048198747
+ - 0.00010332148
+ - 0.000536544
+ - 0.20169978
+ - 0.0036875098
+ - 0.00018917728
+ - 0.000071239985
+ - 0.41134953
+ - 0.007839621
+ - 0.33687383
+ - 0.02334978
+ - 0.0023236908
+ - 0.0006187556
+ - 0.00032589637
+ laughterScore: 0
+ - frameNumber: 1716
+ frameDelay: 0
+ Visemes:
+ - 0.0046220287
+ - 0.0033760548
+ - 0.0000730077
+ - 0.00038013892
+ - 0.14123818
+ - 0.0025932519
+ - 0.00013266316
+ - 0.000050204475
+ - 0.28818142
+ - 0.005489358
+ - 0.5305593
+ - 0.02039814
+ - 0.001658931
+ - 0.0010183593
+ - 0.00022902124
+ laughterScore: 0
+ - frameNumber: 1717
+ frameDelay: 0
+ Visemes:
+ - 0.0034306243
+ - 0.0023660436
+ - 0.000051593674
+ - 0.00026707663
+ - 0.09890944
+ - 0.0018264961
+ - 0.000092954295
+ - 0.000035454927
+ - 0.20177908
+ - 0.0038434735
+ - 0.6679102
+ - 0.017072374
+ - 0.0011668778
+ - 0.0010873936
+ - 0.00016090975
+ laughterScore: 0
+ - frameNumber: 1718
+ frameDelay: 0
+ Visemes:
+ - 0.0026260458
+ - 0.0016599597
+ - 0.000036825986
+ - 0.00018881104
+ - 0.06931118
+ - 0.0012997888
+ - 0.00006517073
+ - 0.000025111647
+ - 0.14128892
+ - 0.002691418
+ - 0.76527643
+ - 0.013604639
+ - 0.0008205748
+ - 0.0009915043
+ - 0.000113571805
+ laughterScore: 0
+ - frameNumber: 1719
+ frameDelay: 0
+ Visemes:
+ - 0.0020938613
+ - 0.0011717376
+ - 0.000026450636
+ - 0.00013259046
+ - 0.048612762
+ - 0.00092092843
+ - 0.00004567061
+ - 0.000017770353
+ - 0.098947786
+ - 0.0018865137
+ - 0.83382356
+ - 0.010654418
+ - 0.00057937775
+ - 0.0010013871
+ - 0.00008512983
+ laughterScore: 0
+ - frameNumber: 1720
+ frameDelay: 0
+ Visemes:
+ - 0.0018785242
+ - 0.0008872522
+ - 0.000022983764
+ - 0.0000930821
+ - 0.034246426
+ - 0.00065473106
+ - 0.000032091346
+ - 0.000013025403
+ - 0.069504976
+ - 0.0013304353
+ - 0.8809706
+ - 0.008402473
+ - 0.00041888305
+ - 0.001464075
+ - 0.000080361875
+ laughterScore: 0
+ - frameNumber: 1721
+ frameDelay: 0
+ Visemes:
+ - 0.0019368066
+ - 0.00070265745
+ - 0.000018144365
+ - 0.000065470194
+ - 0.024123874
+ - 0.00047231198
+ - 0.000022596912
+ - 0.000009858705
+ - 0.048994943
+ - 0.00093920674
+ - 0.91359377
+ - 0.006431631
+ - 0.00031940706
+ - 0.0022863292
+ - 0.00008296365
+ laughterScore: 0
+ - frameNumber: 1722
+ frameDelay: 0
+ Visemes:
+ - 0.002021866
+ - 0.00054181315
+ - 0.00001400105
+ - 0.00004625838
+ - 0.017199406
+ - 0.0003447869
+ - 0.000015949954
+ - 0.0000075176104
+ - 0.03520753
+ - 0.0006610326
+ - 0.9344246
+ - 0.004636823
+ - 0.00026365076
+ - 0.00451152
+ - 0.000103277605
+ laughterScore: 0
+ - frameNumber: 1723
+ frameDelay: 0
+ Visemes:
+ - 0.002076109
+ - 0.0004372355
+ - 0.000012248076
+ - 0.000034380057
+ - 0.013377839
+ - 0.0002779652
+ - 0.000011518468
+ - 0.000007213639
+ - 0.025515568
+ - 0.00046764026
+ - 0.9477645
+ - 0.0032706424
+ - 0.00019868932
+ - 0.0063874526
+ - 0.00016094797
+ laughterScore: 0
+ - frameNumber: 1724
+ frameDelay: 0
+ Visemes:
+ - 0.0026420727
+ - 0.0011506272
+ - 0.000014346766
+ - 0.000040033505
+ - 0.011070025
+ - 0.0002953094
+ - 0.000010158477
+ - 0.000011802324
+ - 0.01976177
+ - 0.0003336218
+ - 0.9486648
+ - 0.0022955837
+ - 0.00014950726
+ - 0.012960099
+ - 0.0006002558
+ laughterScore: 0
+ - frameNumber: 1725
+ frameDelay: 0
+ Visemes:
+ - 0.0025938721
+ - 0.00090729835
+ - 0.000033182838
+ - 0.00003477501
+ - 0.008651171
+ - 0.00021911967
+ - 0.000010503352
+ - 0.00004483215
+ - 0.015179472
+ - 0.00023726064
+ - 0.95366263
+ - 0.0016102862
+ - 0.00012045559
+ - 0.016258985
+ - 0.00043620475
+ laughterScore: 0
+ - frameNumber: 1726
+ frameDelay: 0
+ Visemes:
+ - 0.0043054866
+ - 0.0009236059
+ - 0.00016958729
+ - 0.000099473655
+ - 0.008428909
+ - 0.00025252078
+ - 0.000016539167
+ - 0.00016001947
+ - 0.015146984
+ - 0.00017994472
+ - 0.9391557
+ - 0.0011367929
+ - 0.00009727459
+ - 0.029558491
+ - 0.00036873555
+ laughterScore: 0
+ - frameNumber: 1727
+ frameDelay: 0
+ Visemes:
+ - 0.01006989
+ - 0.001787623
+ - 0.0010824092
+ - 0.0010312522
+ - 0.014497006
+ - 0.00078517286
+ - 0.0000350562
+ - 0.0006309569
+ - 0.027128138
+ - 0.00019624132
+ - 0.884647
+ - 0.0008214609
+ - 0.00008294711
+ - 0.056884546
+ - 0.00032035256
+ laughterScore: 0
+ - frameNumber: 1728
+ frameDelay: 0
+ Visemes:
+ - 0.01500289
+ - 0.0018927768
+ - 0.00095709285
+ - 0.00091119675
+ - 0.012313212
+ - 0.00081833557
+ - 0.000038913764
+ - 0.00061368995
+ - 0.027144447
+ - 0.00023310704
+ - 0.8828161
+ - 0.0009056311
+ - 0.000073280484
+ - 0.055773742
+ - 0.00050565874
+ laughterScore: 0
+ - frameNumber: 1729
+ frameDelay: 0
+ Visemes:
+ - 0.03216509
+ - 0.0016413443
+ - 0.0008493659
+ - 0.0008601892
+ - 0.010493972
+ - 0.0007546112
+ - 0.000035504145
+ - 0.00069544266
+ - 0.03965719
+ - 0.0003974741
+ - 0.856471
+ - 0.004541324
+ - 0.00015041394
+ - 0.05076932
+ - 0.00051779975
+ laughterScore: 0
+ - frameNumber: 1730
+ frameDelay: 0
+ Visemes:
+ - 0.3224964
+ - 0.0011489426
+ - 0.0005945564
+ - 0.00060213264
+ - 0.007345783
+ - 0.00054183346
+ - 0.000024875217
+ - 0.00048711634
+ - 0.027760033
+ - 0.00027823186
+ - 0.5995347
+ - 0.0031789269
+ - 0.00010529223
+ - 0.035538714
+ - 0.00036246446
+ laughterScore: 0
+ length: 36.89996
diff --git a/Assets/Oculus/LipSync/Audio/vox_lp_01_lipSync.asset.meta b/Assets/Oculus/LipSync/Audio/vox_lp_01_lipSync.asset.meta
new file mode 100644
index 0000000..1648604
--- /dev/null
+++ b/Assets/Oculus/LipSync/Audio/vox_lp_01_lipSync.asset.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 1ccea2acd443f4ad4bb9a9f33fc960c0
+timeCreated: 1536698747
+licenseType: Store
+NativeFormatImporter:
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Editor.meta b/Assets/Oculus/LipSync/Editor.meta
new file mode 100644
index 0000000..cce863d
--- /dev/null
+++ b/Assets/Oculus/LipSync/Editor.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 7152fa4bbe0044f12886bfb6274626bf
+folderAsset: yes
+timeCreated: 1496772356
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Editor/OVRLipSyncTool.cs b/Assets/Oculus/LipSync/Editor/OVRLipSyncTool.cs
new file mode 100644
index 0000000..a9cefac
--- /dev/null
+++ b/Assets/Oculus/LipSync/Editor/OVRLipSyncTool.cs
@@ -0,0 +1,141 @@
+/************************************************************************************
+Filename : OVRLipSyncTool.cs
+Content : Editor tool for generating lip sync assets
+Created : May 17th, 2018
+Copyright : Copyright Facebook Technologies, LLC and its affiliates.
+ All rights reserved.
+
+Licensed under the Oculus Audio SDK License Version 3.3 (the "License");
+you may not use the Oculus Audio SDK except in compliance with the License,
+which is provided at the time of installation or download, or which
+otherwise accompanies this software in either electronic or hard copy form.
+
+You may obtain a copy of the License at
+
+https://developer.oculus.com/licenses/audio-3.3/
+
+Unless required by applicable law or agreed to in writing, the Oculus Audio SDK
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+************************************************************************************/
+using UnityEngine;
+using UnityEditor;
+using System.IO;
+using System.Collections;
+using System.Collections.Generic;
+
+class OVRLipSyncToolLoader
+{
+ public static List clipQueue;
+ public static IEnumerator processor;
+
+ // To show progress we use the total seconds of clip
+ public static float totalLengthOfClips;
+ public static float totalLengthOfClipsProcessed;
+
+ public static IEnumerator ProcessClips()
+ {
+ if (clipQueue == null || clipQueue.Count == 0)
+ {
+ yield break;
+ }
+
+ while (clipQueue.Count > 0)
+ {
+ // Pop a clip off the list
+ AudioClip clip = clipQueue[0];
+ clipQueue.RemoveAt(0);
+
+ if (clip.loadType != AudioClipLoadType.DecompressOnLoad)
+ {
+ Debug.LogError(clip.name +
+ ": Cannot process phonemes from an audio clip unless " +
+ "its load type is set to DecompressOnLoad.");
+ continue;
+ }
+
+ // Update progress
+ if (totalLengthOfClips > 0.0f)
+ {
+ EditorUtility.DisplayProgressBar("Generating Lip Sync Assets...", "Processing clip " + clip.name + "...",
+ totalLengthOfClipsProcessed / totalLengthOfClips);
+ }
+
+ if (!clip.preloadAudioData)
+ {
+ clip.LoadAudioData();
+
+ Debug.LogWarning(clip.name +
+ ": Audio data is not pre-loaded. Data will be loaded then" +
+ "unloaded on completion.");
+
+ while (clip.loadState != AudioDataLoadState.Loaded)
+ {
+ yield return new WaitForSeconds(0.1f);
+ }
+ }
+
+ OVRLipSyncSequence sequence = OVRLipSyncSequence.CreateSequenceFromAudioClip(clip);
+ if (sequence != null)
+ {
+ string path = AssetDatabase.GetAssetPath(clip);
+ string newPath = path.Replace(Path.GetExtension(path), "_lipSync.asset");
+ AssetDatabase.CreateAsset(sequence, newPath);
+ AssetDatabase.ImportAsset(newPath);
+ }
+ AssetDatabase.Refresh();
+
+ if (!clip.preloadAudioData)
+ {
+ clip.UnloadAudioData();
+ }
+
+ totalLengthOfClipsProcessed += clip.length;
+ }
+
+ EditorUtility.ClearProgressBar();
+ }
+
+ static OVRLipSyncToolLoader()
+ {
+ processor = ProcessClips();
+ EditorApplication.update += Update;
+ }
+ static void Update()
+ {
+ processor.MoveNext();
+ }
+}
+
+class OVRLipSyncTool
+{
+ [MenuItem("Tools/Oculus/Generate Lip Sync Assets", false, 2000000)]
+ static void GenerateLipSyncAssets()
+ {
+
+ if (OVRLipSyncToolLoader.clipQueue == null)
+ {
+ OVRLipSyncToolLoader.clipQueue = new List();
+ }
+
+ OVRLipSyncToolLoader.totalLengthOfClips = 0.0f;
+ OVRLipSyncToolLoader.totalLengthOfClipsProcessed = 0.0f;
+
+ for (int i = 0; i < Selection.objects.Length; ++i)
+ {
+ Object obj = Selection.objects[i];
+ if (obj is AudioClip)
+ {
+ AudioClip clip = (AudioClip)obj;
+
+ OVRLipSyncToolLoader.clipQueue.Add(clip);
+
+ OVRLipSyncToolLoader.totalLengthOfClips += clip.length;
+ }
+ }
+
+ OVRLipSyncToolLoader.processor = OVRLipSyncToolLoader.ProcessClips();
+ }
+}
diff --git a/Assets/Oculus/LipSync/Editor/OVRLipSyncTool.cs.meta b/Assets/Oculus/LipSync/Editor/OVRLipSyncTool.cs.meta
new file mode 100644
index 0000000..a86e9a2
--- /dev/null
+++ b/Assets/Oculus/LipSync/Editor/OVRLipSyncTool.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 08b0ff764adc142d79bfae7dd917cc16
+timeCreated: 1491977874
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Editor/OVRNamedArrayPropertyDrawer.cs b/Assets/Oculus/LipSync/Editor/OVRNamedArrayPropertyDrawer.cs
new file mode 100644
index 0000000..cc7b7bd
--- /dev/null
+++ b/Assets/Oculus/LipSync/Editor/OVRNamedArrayPropertyDrawer.cs
@@ -0,0 +1,38 @@
+/************************************************************************************
+Filename : OVRNamedArrayPropertyDrawer.cs
+Content : Adds a custom named array drawer to the Unity editor
+Created : May 17th, 2018
+Copyright : Copyright Facebook Technologies, LLC and its affiliates.
+ All rights reserved.
+
+Licensed under the Oculus Audio SDK License Version 3.3 (the "License");
+you may not use the Oculus Audio SDK except in compliance with the License,
+which is provided at the time of installation or download, or which
+otherwise accompanies this software in either electronic or hard copy form.
+
+You may obtain a copy of the License at
+
+https://developer.oculus.com/licenses/audio-3.3/
+
+Unless required by applicable law or agreed to in writing, the Oculus Audio SDK
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+************************************************************************************/
+using UnityEngine;
+using UnityEditor;
+
+// Adds a custom named array drawer to the Unity editor
+[CustomPropertyDrawer( typeof(OVRNamedArrayAttribute) )]
+public class OVRNamedArrayPropertyDrawer : PropertyDrawer {
+ public override void OnGUI( Rect rect, SerializedProperty property, GUIContent label ) {
+ try {
+ int pos = int.Parse(property.propertyPath.Split('[', ']')[1]);
+ EditorGUI.PropertyField( rect, property,
+ new GUIContent( ( (OVRNamedArrayAttribute)attribute ).names[pos] ) );
+ } catch {
+ EditorGUI.PropertyField( rect, property, label );
+ }
+ }
+}
diff --git a/Assets/Oculus/LipSync/Editor/OVRNamedArrayPropertyDrawer.cs.meta b/Assets/Oculus/LipSync/Editor/OVRNamedArrayPropertyDrawer.cs.meta
new file mode 100644
index 0000000..cf183ec
--- /dev/null
+++ b/Assets/Oculus/LipSync/Editor/OVRNamedArrayPropertyDrawer.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c2d166626e0b34a40b774467cc6c5868
+timeCreated: 1534993516
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models.meta b/Assets/Oculus/LipSync/Models.meta
new file mode 100644
index 0000000..2f6b678
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: fe1e90827fcfcac4883e383c51a78ddd
+folderAsset: yes
+timeCreated: 1437169289
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/Lips.meta b/Assets/Oculus/LipSync/Models/Lips.meta
new file mode 100644
index 0000000..0f50a84
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/Lips.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: cd7d0c112e607a449b343e927db73608
+folderAsset: yes
+timeCreated: 1448389303
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/Lips/Lips.prefab b/Assets/Oculus/LipSync/Models/Lips/Lips.prefab
new file mode 100644
index 0000000..04008a9
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/Lips/Lips.prefab
@@ -0,0 +1,171 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &133732
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 485542}
+ m_Layer: 0
+ m_Name: CATRigHub001
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &151472
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 428150}
+ m_Layer: 0
+ m_Name: CATRigHub001Bone001
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &158350
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 488116}
+ - 137: {fileID: 13790992}
+ m_Layer: 0
+ m_Name: Lips
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &167936
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 431088}
+ m_Layer: 0
+ m_Name: Lips
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &428150
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 151472}
+ m_LocalRotation: {x: -7.74982656e-09, y: 1.44928507e-07, z: .923879564, w: -.382683456}
+ m_LocalPosition: {x: .0436698794, y: -.0447963811, z: 6.36683506e-09}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 485542}
+ m_RootOrder: 0
+--- !u!4 &431088
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 167936}
+ 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: 485542}
+ - {fileID: 488116}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+--- !u!4 &485542
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 133732}
+ m_LocalRotation: {x: .50000006, y: -.49999994, z: -.49999994, w: .50000006}
+ m_LocalPosition: {x: 0, y: 2.54040206e-10, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 428150}
+ m_Father: {fileID: 431088}
+ m_RootOrder: 0
+--- !u!4 &488116
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 158350}
+ m_LocalRotation: {x: -.707106829, y: 0, z: -0, w: .707106829}
+ m_LocalPosition: {x: -.000138242322, y: .00531236501, z: -.0556682572}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 431088}
+ m_RootOrder: 1
+--- !u!137 &13790992
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 158350}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_Materials:
+ - {fileID: 2100000, guid: 58a7d4ae76f707641b7844bef3c8dbcb, type: 2}
+ - {fileID: 2100000, guid: e9d2e6e00d03b7b4d91a738089017154, type: 2}
+ m_SubsetIndices:
+ m_StaticBatchRoot: {fileID: 0}
+ m_UseLightProbes: 1
+ m_ReflectionProbeUsage: 1
+ m_ProbeAnchor: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_ImportantGI: 0
+ m_AutoUVMaxDistance: .5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_Mesh: {fileID: 4300000, guid: 8962b26653269f348a9494917de56179, type: 3}
+ m_Bones:
+ - {fileID: 485542}
+ - {fileID: 428150}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 485542}
+ m_AABB:
+ m_Center: {x: .0666177869, y: .0378602631, z: .000725688413}
+ m_Extent: {x: .0338176042, y: .0338176154, z: .0438972637}
+ m_DirtyAABB: 0
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 0}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 167936}
+ m_IsPrefabParent: 1
diff --git a/Assets/Oculus/LipSync/Models/Lips/Lips.prefab.meta b/Assets/Oculus/LipSync/Models/Lips/Lips.prefab.meta
new file mode 100644
index 0000000..78037b0
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/Lips/Lips.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8b31b6ff670456643871f5910afba79a
+timeCreated: 1448394748
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/Lips/Source.meta b/Assets/Oculus/LipSync/Models/Lips/Source.meta
new file mode 100644
index 0000000..4c5fefc
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/Lips/Source.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 2c3314035f37b104ea16f437ea71268a
+folderAsset: yes
+timeCreated: 1448389334
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Albedo].tga b/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Albedo].tga
new file mode 100644
index 0000000..dd4b2bb
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Albedo].tga differ
diff --git a/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Albedo].tga.meta b/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Albedo].tga.meta
new file mode 100644
index 0000000..0262a88
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Albedo].tga.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: 174f0a25d51125a479be833058e62ce8
+timeCreated: 1448389510
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Emission].tga b/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Emission].tga
new file mode 100644
index 0000000..41db2c6
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Emission].tga differ
diff --git a/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Emission].tga.meta b/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Emission].tga.meta
new file mode 100644
index 0000000..d545a61
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Emission].tga.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: 92ef7615a028bf1418f1d2115f157fa7
+timeCreated: 1448389763
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Normal].tga b/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Normal].tga
new file mode 100644
index 0000000..8def84c
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Normal].tga differ
diff --git a/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Normal].tga.meta b/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Normal].tga.meta
new file mode 100644
index 0000000..74ea1c8
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Normal].tga.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: 38abb692fa3186447a01db602c633fb7
+timeCreated: 1448389864
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 1
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 1
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: 1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Specular].tga b/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Specular].tga
new file mode 100644
index 0000000..32cbe40
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Specular].tga differ
diff --git a/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Specular].tga.meta b/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Specular].tga.meta
new file mode 100644
index 0000000..eeaa3c1
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/Lips/Source/Lips [Specular].tga.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: e4b095f9d3c63e943b24ab90a963b272
+timeCreated: 1448389510
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/Lips/Source/Lips.FBX b/Assets/Oculus/LipSync/Models/Lips/Source/Lips.FBX
new file mode 100644
index 0000000..f658cee
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/Lips/Source/Lips.FBX differ
diff --git a/Assets/Oculus/LipSync/Models/Lips/Source/Lips.FBX.meta b/Assets/Oculus/LipSync/Models/Lips/Source/Lips.FBX.meta
new file mode 100644
index 0000000..fd92bdd
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/Lips/Source/Lips.FBX.meta
@@ -0,0 +1,89 @@
+fileFormatVersion: 2
+guid: 8962b26653269f348a9494917de56179
+timeCreated: 1531323144
+licenseType: Store
+ModelImporter:
+ serializedVersion: 19
+ fileIDToRecycleName:
+ 100000: CATRigHub001
+ 100002: CATRigHub001Bone001
+ 100004: //RootNode
+ 100006: Lips
+ 400000: CATRigHub001
+ 400002: CATRigHub001Bone001
+ 400004: //RootNode
+ 400006: Lips
+ 4300000: Lips
+ 7400000: Take 001
+ 9500000: //RootNode
+ 13700000: Lips
+ materials:
+ importMaterials: 1
+ materialName: 0
+ materialSearch: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ clipAnimations: []
+ isReadable: 1
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ importBlendShapes: 1
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ optimizeMeshForGPU: 1
+ keepQuads: 0
+ weldVertices: 1
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 4
+ importAnimation: 1
+ copyAvatar: 0
+ humanDescription:
+ serializedVersion: 2
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ rootMotionBoneName:
+ rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 0
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ animationType: 2
+ humanoidOversampling: 1
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/Lips/Source/Materials.meta b/Assets/Oculus/LipSync/Models/Lips/Source/Materials.meta
new file mode 100644
index 0000000..1158fa2
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/Lips/Source/Materials.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: de1e7e3c78028ac498bc50411fd5413b
+folderAsset: yes
+timeCreated: 1448394946
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/Lips/Source/Materials/Lips.mat b/Assets/Oculus/LipSync/Models/Lips/Source/Materials/Lips.mat
new file mode 100644
index 0000000..9db8848
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/Lips/Source/Materials/Lips.mat
@@ -0,0 +1,149 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Lips
+ m_Shader: {fileID: 45, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords: _EMISSION _NORMALMAP _SPECGLOSSMAP
+ m_LightmapFlags: 1
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ data:
+ first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 2800000, guid: 174f0a25d51125a479be833058e62ce8, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _BumpMap
+ second:
+ m_Texture: {fileID: 2800000, guid: 38abb692fa3186447a01db602c633fb7, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _DetailNormalMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _ParallaxMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _OcclusionMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _EmissionMap
+ second:
+ m_Texture: {fileID: 2800000, guid: 92ef7615a028bf1418f1d2115f157fa7, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _DetailMask
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _DetailAlbedoMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _MetallicGlossMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _SpecGlossMap
+ second:
+ m_Texture: {fileID: 2800000, guid: e4b095f9d3c63e943b24ab90a963b272, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ data:
+ first:
+ name: _SrcBlend
+ second: 1
+ data:
+ first:
+ name: _DstBlend
+ second: 0
+ data:
+ first:
+ name: _Cutoff
+ second: .5
+ data:
+ first:
+ name: _Parallax
+ second: .0199999996
+ data:
+ first:
+ name: _ZWrite
+ second: 1
+ data:
+ first:
+ name: _Glossiness
+ second: .5
+ data:
+ first:
+ name: _BumpScale
+ second: 1
+ data:
+ first:
+ name: _OcclusionStrength
+ second: 1
+ data:
+ first:
+ name: _DetailNormalMapScale
+ second: 1
+ data:
+ first:
+ name: _UVSec
+ second: 0
+ data:
+ first:
+ name: _Mode
+ second: 0
+ data:
+ first:
+ name: _Metallic
+ second: 0
+ m_Colors:
+ data:
+ first:
+ name: _EmissionColor
+ second: {r: 1, g: 1, b: 1, a: 1}
+ data:
+ first:
+ name: _Color
+ second: {r: 1, g: 1, b: 1, a: 1}
+ data:
+ first:
+ name: _SpecColor
+ second: {r: .200000003, g: .200000003, b: .200000003, a: 1}
diff --git a/Assets/Oculus/LipSync/Models/Lips/Source/Materials/Lips.mat.meta b/Assets/Oculus/LipSync/Models/Lips/Source/Materials/Lips.mat.meta
new file mode 100644
index 0000000..357691b
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/Lips/Source/Materials/Lips.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 58a7d4ae76f707641b7844bef3c8dbcb
+timeCreated: 1448389334
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/Lips/Source/Materials/Lips_Alpha.mat b/Assets/Oculus/LipSync/Models/Lips/Source/Materials/Lips_Alpha.mat
new file mode 100644
index 0000000..7476ccb
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/Lips/Source/Materials/Lips_Alpha.mat
@@ -0,0 +1,150 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Lips_Alpha
+ m_Shader: {fileID: 45, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords: _ALPHABLEND_ON _EMISSION _METALLICGLOSSMAP _NORMALMAP _SPECGLOSSMAP
+ m_LightmapFlags: 1
+ m_CustomRenderQueue: 3000
+ stringTagMap:
+ RenderType: Transparent
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ data:
+ first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 2800000, guid: 174f0a25d51125a479be833058e62ce8, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _BumpMap
+ second:
+ m_Texture: {fileID: 2800000, guid: 38abb692fa3186447a01db602c633fb7, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _DetailNormalMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _ParallaxMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _OcclusionMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _EmissionMap
+ second:
+ m_Texture: {fileID: 2800000, guid: 92ef7615a028bf1418f1d2115f157fa7, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _DetailMask
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _DetailAlbedoMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _MetallicGlossMap
+ second:
+ m_Texture: {fileID: 2800000, guid: 38abb692fa3186447a01db602c633fb7, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _SpecGlossMap
+ second:
+ m_Texture: {fileID: 2800000, guid: e4b095f9d3c63e943b24ab90a963b272, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ data:
+ first:
+ name: _SrcBlend
+ second: 5
+ data:
+ first:
+ name: _DstBlend
+ second: 10
+ data:
+ first:
+ name: _Cutoff
+ second: .5
+ data:
+ first:
+ name: _Parallax
+ second: .0199999996
+ data:
+ first:
+ name: _ZWrite
+ second: 0
+ data:
+ first:
+ name: _Glossiness
+ second: .5
+ data:
+ first:
+ name: _BumpScale
+ second: 1
+ data:
+ first:
+ name: _OcclusionStrength
+ second: 1
+ data:
+ first:
+ name: _DetailNormalMapScale
+ second: 1
+ data:
+ first:
+ name: _UVSec
+ second: 0
+ data:
+ first:
+ name: _Mode
+ second: 2
+ data:
+ first:
+ name: _Metallic
+ second: 0
+ m_Colors:
+ data:
+ first:
+ name: _EmissionColor
+ second: {r: 1, g: 1, b: 1, a: 1}
+ data:
+ first:
+ name: _Color
+ second: {r: 1, g: 1, b: 1, a: 1}
+ data:
+ first:
+ name: _SpecColor
+ second: {r: .200000003, g: .200000003, b: .200000003, a: 1}
diff --git a/Assets/Oculus/LipSync/Models/Lips/Source/Materials/Lips_Alpha.mat.meta b/Assets/Oculus/LipSync/Models/Lips/Source/Materials/Lips_Alpha.mat.meta
new file mode 100644
index 0000000..2796d2e
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/Lips/Source/Materials/Lips_Alpha.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e9d2e6e00d03b7b4d91a738089017154
+timeCreated: 1448389583
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip.meta
new file mode 100644
index 0000000..dd83fe1
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: a4624e55b9bd82444bf4687fee7e9346
+folderAsset: yes
+timeCreated: 1444079114
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/CH.png b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/CH.png
new file mode 100644
index 0000000..9b5757b
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/CH.png differ
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/CH.png.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/CH.png.meta
new file mode 100644
index 0000000..9be43ac
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/CH.png.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: 5e6531e8f56b42547b8d2ddf7a7363d1
+timeCreated: 1444079115
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/DD.png b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/DD.png
new file mode 100644
index 0000000..898a3e2
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/DD.png differ
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/DD.png.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/DD.png.meta
new file mode 100644
index 0000000..57c6f83
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/DD.png.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: ffbd7db31d3ad6e4a97a2f312babdcb6
+timeCreated: 1444079115
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/E.png b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/E.png
new file mode 100644
index 0000000..32489bd
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/E.png differ
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/E.png.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/E.png.meta
new file mode 100644
index 0000000..827fa18
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/E.png.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: 29a06a0eefee1b542a7c286f1689ffab
+timeCreated: 1444079115
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/FF.png b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/FF.png
new file mode 100644
index 0000000..41ad5d7
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/FF.png differ
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/FF.png.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/FF.png.meta
new file mode 100644
index 0000000..7a4a1d3
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/FF.png.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: 5563aa34057c347499c480ea33c5d593
+timeCreated: 1444079115
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Head-2.png b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Head-2.png
new file mode 100644
index 0000000..3e8a482
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Head-2.png differ
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Head-2.png.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Head-2.png.meta
new file mode 100644
index 0000000..6baf493
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Head-2.png.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: 49ba9bfa609aed54ea6d5d1c1390bc15
+timeCreated: 1444079115
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials.meta
new file mode 100644
index 0000000..c552a0c
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 6c05c00fcd925e1469ab8cab6316329f
+folderAsset: yes
+timeCreated: 1444079116
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials/Head-2.mat b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials/Head-2.mat
new file mode 100644
index 0000000..4f66934
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials/Head-2.mat
@@ -0,0 +1,138 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Head-2
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords:
+ m_LightmapFlags: 5
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ data:
+ first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 2800000, guid: 49ba9bfa609aed54ea6d5d1c1390bc15, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _BumpMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _DetailNormalMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _ParallaxMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _OcclusionMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _EmissionMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _DetailMask
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _DetailAlbedoMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _MetallicGlossMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ data:
+ first:
+ name: _SrcBlend
+ second: 1
+ data:
+ first:
+ name: _DstBlend
+ second: 0
+ data:
+ first:
+ name: _Cutoff
+ second: .5
+ data:
+ first:
+ name: _Parallax
+ second: .0199999996
+ data:
+ first:
+ name: _ZWrite
+ second: 1
+ data:
+ first:
+ name: _Glossiness
+ second: .5
+ data:
+ first:
+ name: _BumpScale
+ second: 1
+ data:
+ first:
+ name: _OcclusionStrength
+ second: 1
+ data:
+ first:
+ name: _DetailNormalMapScale
+ second: 1
+ data:
+ first:
+ name: _UVSec
+ second: 0
+ data:
+ first:
+ name: _Mode
+ second: 0
+ data:
+ first:
+ name: _Metallic
+ second: 0
+ m_Colors:
+ data:
+ first:
+ name: _EmissionColor
+ second: {r: 0, g: 0, b: 0, a: 1}
+ data:
+ first:
+ name: _Color
+ second: {r: .588235319, g: .588235319, b: .588235319, a: 1}
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials/Head-2.mat.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials/Head-2.mat.meta
new file mode 100644
index 0000000..75d53d0
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials/Head-2.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b8f002f88e9d7e847b5306f3338f80db
+timeCreated: 1444079116
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials/sil.mat b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials/sil.mat
new file mode 100644
index 0000000..8bc66c1
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials/sil.mat
@@ -0,0 +1,77 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: sil
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords: _ALPHAPREMULTIPLY_ON
+ m_LightmapFlags: 5
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 3000
+ stringTagMap:
+ RenderType: Transparent
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _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: 2800000, guid: bea5b996ab6235c4aaa1be9b11aea8c4, type: 3}
+ 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}
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 10
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 3
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 0
+ m_Colors:
+ - _Color: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials/sil.mat.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials/sil.mat.meta
new file mode 100644
index 0000000..75800bc
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials/sil.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5290b3a55eaa1b7458665dc2d856c042
+timeCreated: 1444079116
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/PP.png b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/PP.png
new file mode 100644
index 0000000..9c093cc
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/PP.png differ
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/PP.png.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/PP.png.meta
new file mode 100644
index 0000000..ca7a6f7
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/PP.png.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: bea5b996ab6235c4aaa1be9b11aea8c4
+timeCreated: 1444079115
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/RR.png b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/RR.png
new file mode 100644
index 0000000..8b28ae5
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/RR.png differ
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/RR.png.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/RR.png.meta
new file mode 100644
index 0000000..dd8cbde
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/RR.png.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: 6d47a54f2b89a59459fd7561d360bab2
+timeCreated: 1444079115
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/RobotHead_TextureFlip.FBX b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/RobotHead_TextureFlip.FBX
new file mode 100644
index 0000000..1f062ca
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/RobotHead_TextureFlip.FBX differ
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/RobotHead_TextureFlip.FBX.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/RobotHead_TextureFlip.FBX.meta
new file mode 100644
index 0000000..c049eeb
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/RobotHead_TextureFlip.FBX.meta
@@ -0,0 +1,118 @@
+fileFormatVersion: 2
+guid: f82b1e3c015abaa409d91ab8eb628ac4
+timeCreated: 1444079116
+licenseType: Store
+ModelImporter:
+ serializedVersion: 18
+ fileIDToRecycleName:
+ 100000: Eye-l
+ 100002: Eye-r
+ 100004: Head-0
+ 100006: Head-1
+ 100008: Head-2
+ 100010: //RootNode
+ 100012: Head-3
+ 100014: Head-4
+ 100016: Head-5
+ 100018: mouth
+ 400000: Eye-l
+ 400002: Eye-r
+ 400004: Head-0
+ 400006: Head-1
+ 400008: Head-2
+ 400010: //RootNode
+ 400012: Head-3
+ 400014: Head-4
+ 400016: Head-5
+ 400018: mouth
+ 2300000: Eye-l
+ 2300002: Eye-r
+ 2300004: Head-0
+ 2300006: Head-1
+ 2300008: Head-2
+ 2300010: Head-3
+ 2300012: Head-4
+ 2300014: Head-5
+ 2300016: mouth
+ 3300000: Eye-l
+ 3300002: Eye-r
+ 3300004: Head-0
+ 3300006: Head-1
+ 3300008: Head-2
+ 3300010: Head-3
+ 3300012: Head-4
+ 3300014: Head-5
+ 3300016: mouth
+ 4300000: Head-0
+ 4300002: Eye-r
+ 4300004: Eye-l
+ 4300006: Head-5
+ 4300008: Head-3
+ 4300010: Head-4
+ 4300012: Head-2
+ 4300014: Head-1
+ 4300016: mouth
+ materials:
+ importMaterials: 1
+ materialName: 0
+ materialSearch: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ optimizeGameObjects: 0
+ motionNodeName:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ animationCompression: 1
+ animationRotationError: .5
+ animationPositionError: .5
+ animationScaleError: .5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ clipAnimations: []
+ isReadable: 1
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ importBlendShapes: 1
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ optimizeMeshForGPU: 1
+ keepQuads: 0
+ weldVertices: 1
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ splitTangentsAcrossUV: 1
+ normalImportMode: 0
+ tangentImportMode: 1
+ importAnimation: 1
+ copyAvatar: 0
+ humanDescription:
+ human: []
+ skeleton: []
+ armTwist: .5
+ foreArmTwist: .5
+ upperLegTwist: .5
+ legTwist: .5
+ armStretch: .0500000007
+ legStretch: .0500000007
+ feetSpacing: 0
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ animationType: 0
+ humanoidOversampling: 1
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/SS.png b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/SS.png
new file mode 100644
index 0000000..79ed868
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/SS.png differ
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/SS.png.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/SS.png.meta
new file mode 100644
index 0000000..ee30367
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/SS.png.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: 31e6326c0bd6143479322c5b4a5fe949
+timeCreated: 1444079115
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/TH.png b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/TH.png
new file mode 100644
index 0000000..25a8f7d
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/TH.png differ
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/TH.png.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/TH.png.meta
new file mode 100644
index 0000000..1ae2159
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/TH.png.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: d14bb80824ed25b44a65ddfc7f591e29
+timeCreated: 1444079115
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/aa.png b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/aa.png
new file mode 100644
index 0000000..06d4912
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/aa.png differ
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/aa.png.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/aa.png.meta
new file mode 100644
index 0000000..9e91d39
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/aa.png.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: 5c06354455999f94ea26114e261dde6d
+timeCreated: 1444079115
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/ih.png b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/ih.png
new file mode 100644
index 0000000..d7d94fd
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/ih.png differ
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/ih.png.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/ih.png.meta
new file mode 100644
index 0000000..ebe2478
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/ih.png.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: ad60c8114191fdf41aa0ea64e132add9
+timeCreated: 1444079115
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/kk.png b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/kk.png
new file mode 100644
index 0000000..9b5757b
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/kk.png differ
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/kk.png.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/kk.png.meta
new file mode 100644
index 0000000..d0b3459
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/kk.png.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: ba0b9f69af91c5f46b490346e5552136
+timeCreated: 1444079115
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/nn.png b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/nn.png
new file mode 100644
index 0000000..d11ddbd
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/nn.png differ
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/nn.png.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/nn.png.meta
new file mode 100644
index 0000000..b66ecf8
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/nn.png.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: 9c21cf8c4dffca9418cebd0a578972b4
+timeCreated: 1444079115
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/oh.png b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/oh.png
new file mode 100644
index 0000000..f1bfb1a
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/oh.png differ
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/oh.png.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/oh.png.meta
new file mode 100644
index 0000000..6d060b8
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/oh.png.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: 5f658e6e48970d340b4491a5fc959251
+timeCreated: 1444079115
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/ou.png b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/ou.png
new file mode 100644
index 0000000..308205e
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/ou.png differ
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/ou.png.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/ou.png.meta
new file mode 100644
index 0000000..5f9064d
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/ou.png.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: 660be1fdb8590b14bab012a991bdeb86
+timeCreated: 1444079115
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/sil.png b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/sil.png
new file mode 100644
index 0000000..62e89ae
Binary files /dev/null and b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/sil.png differ
diff --git a/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/sil.png.meta b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/sil.png.meta
new file mode 100644
index 0000000..bdab52c
--- /dev/null
+++ b/Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/sil.png.meta
@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: 46b2920291e9b8c4888ad3fe3f5e5e69
+timeCreated: 1444079115
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ allowsAlphaSplitting: 0
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Plugins.meta b/Assets/Oculus/LipSync/Plugins.meta
new file mode 100644
index 0000000..17c18a5
--- /dev/null
+++ b/Assets/Oculus/LipSync/Plugins.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 46ec37f6aa802c24ebead00e48b4ec09
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Plugins/Android32.meta b/Assets/Oculus/LipSync/Plugins/Android32.meta
new file mode 100644
index 0000000..c40373f
--- /dev/null
+++ b/Assets/Oculus/LipSync/Plugins/Android32.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: bbaa933ce12896e4eb67e30b96d795e9
+folderAsset: yes
+timeCreated: 1536610734
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Plugins/Android32/libOVRLipSync.so b/Assets/Oculus/LipSync/Plugins/Android32/libOVRLipSync.so
new file mode 100644
index 0000000..a2661a2
Binary files /dev/null and b/Assets/Oculus/LipSync/Plugins/Android32/libOVRLipSync.so differ
diff --git a/Assets/Oculus/LipSync/Plugins/Android32/libOVRLipSync.so.meta b/Assets/Oculus/LipSync/Plugins/Android32/libOVRLipSync.so.meta
new file mode 100644
index 0000000..00d8dd6
--- /dev/null
+++ b/Assets/Oculus/LipSync/Plugins/Android32/libOVRLipSync.so.meta
@@ -0,0 +1,96 @@
+fileFormatVersion: 2
+guid: 1be7ff64e219f4e44b17e7a42f13247b
+timeCreated: 1536610736
+licenseType: Store
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ - first:
+ '': Any
+ second:
+ enabled: 0
+ settings:
+ Exclude Android: 0
+ Exclude Editor: 1
+ Exclude Linux: 1
+ Exclude Linux64: 1
+ Exclude LinuxUniversal: 1
+ Exclude OSXUniversal: 1
+ Exclude WebGL: 1
+ Exclude Win: 1
+ Exclude Win64: 1
+ - first:
+ Android: Android
+ second:
+ enabled: 1
+ settings:
+ CPU: ARMv7
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ DefaultValueInitialized: true
+ OS: AnyOS
+ - first:
+ Facebook: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ - first:
+ Facebook: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: Linux
+ second:
+ enabled: 0
+ settings:
+ CPU: x86
+ - first:
+ Standalone: Linux64
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ - first:
+ Standalone: LinuxUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Plugins/Android64.meta b/Assets/Oculus/LipSync/Plugins/Android64.meta
new file mode 100644
index 0000000..3983718
--- /dev/null
+++ b/Assets/Oculus/LipSync/Plugins/Android64.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: c1eb8c88592ff744ca29ebf826bb58e1
+folderAsset: yes
+timeCreated: 1536610734
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Plugins/Android64/libOVRLipSync.so b/Assets/Oculus/LipSync/Plugins/Android64/libOVRLipSync.so
new file mode 100644
index 0000000..c9e4d6e
Binary files /dev/null and b/Assets/Oculus/LipSync/Plugins/Android64/libOVRLipSync.so differ
diff --git a/Assets/Oculus/LipSync/Plugins/Android64/libOVRLipSync.so.meta b/Assets/Oculus/LipSync/Plugins/Android64/libOVRLipSync.so.meta
new file mode 100644
index 0000000..8636cef
--- /dev/null
+++ b/Assets/Oculus/LipSync/Plugins/Android64/libOVRLipSync.so.meta
@@ -0,0 +1,96 @@
+fileFormatVersion: 2
+guid: 57850b02365448041958df056264b3e3
+timeCreated: 1536610736
+licenseType: Store
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ - first:
+ '': Any
+ second:
+ enabled: 0
+ settings:
+ Exclude Android: 0
+ Exclude Editor: 1
+ Exclude Linux: 1
+ Exclude Linux64: 1
+ Exclude LinuxUniversal: 1
+ Exclude OSXUniversal: 1
+ Exclude WebGL: 1
+ Exclude Win: 1
+ Exclude Win64: 1
+ - first:
+ Android: Android
+ second:
+ enabled: 1
+ settings:
+ CPU: ARM64
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ DefaultValueInitialized: true
+ OS: AnyOS
+ - first:
+ Facebook: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ - first:
+ Facebook: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: Linux
+ second:
+ enabled: 0
+ settings:
+ CPU: x86
+ - first:
+ Standalone: Linux64
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ - first:
+ Standalone: LinuxUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Plugins/MacOSX.meta b/Assets/Oculus/LipSync/Plugins/MacOSX.meta
new file mode 100644
index 0000000..2e601b8
--- /dev/null
+++ b/Assets/Oculus/LipSync/Plugins/MacOSX.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: a6504b8c29dd76d4388eef4c5458c108
+folderAsset: yes
+timeCreated: 1536866262
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Plugins/MacOSX/OVRLipSync.bundle b/Assets/Oculus/LipSync/Plugins/MacOSX/OVRLipSync.bundle
new file mode 100644
index 0000000..000465f
Binary files /dev/null and b/Assets/Oculus/LipSync/Plugins/MacOSX/OVRLipSync.bundle differ
diff --git a/Assets/Oculus/LipSync/Plugins/MacOSX/OVRLipSync.bundle.meta b/Assets/Oculus/LipSync/Plugins/MacOSX/OVRLipSync.bundle.meta
new file mode 100644
index 0000000..74bd30e
--- /dev/null
+++ b/Assets/Oculus/LipSync/Plugins/MacOSX/OVRLipSync.bundle.meta
@@ -0,0 +1,130 @@
+fileFormatVersion: 2
+guid: 79c2e7f7b1a214443ab64ef151d6bd36
+timeCreated: 1529454298
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ '': Any
+ second:
+ enabled: 0
+ settings:
+ Exclude Android: 1
+ Exclude Editor: 0
+ Exclude Linux: 1
+ Exclude Linux64: 1
+ Exclude LinuxUniversal: 1
+ Exclude OSXIntel: 1
+ Exclude OSXIntel64: 0
+ Exclude OSXUniversal: 0
+ Exclude Win: 1
+ Exclude Win64: 1
+ data:
+ first:
+ '': Editor
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ OS: OSX
+ data:
+ first:
+ Android: Android
+ second:
+ enabled: 0
+ settings:
+ CPU: ARMv7
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ OS: OSX
+ data:
+ first:
+ Facebook: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Facebook: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: Linux
+ second:
+ enabled: 0
+ settings:
+ CPU: x86
+ data:
+ first:
+ Standalone: Linux64
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ data:
+ first:
+ Standalone: LinuxUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: OSXIntel
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: OSXIntel64
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ data:
+ first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Plugins/Win64.meta b/Assets/Oculus/LipSync/Plugins/Win64.meta
new file mode 100644
index 0000000..d6bbd1b
--- /dev/null
+++ b/Assets/Oculus/LipSync/Plugins/Win64.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 1c5d549bd7e8f2142b88f679c5b3d73e
+folderAsset: yes
+timeCreated: 1536866262
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Plugins/Win64/OVRLipSync.dll b/Assets/Oculus/LipSync/Plugins/Win64/OVRLipSync.dll
new file mode 100644
index 0000000..8a7af9a
Binary files /dev/null and b/Assets/Oculus/LipSync/Plugins/Win64/OVRLipSync.dll differ
diff --git a/Assets/Oculus/LipSync/Plugins/Win64/OVRLipSync.dll.meta b/Assets/Oculus/LipSync/Plugins/Win64/OVRLipSync.dll.meta
new file mode 100644
index 0000000..3bae632
--- /dev/null
+++ b/Assets/Oculus/LipSync/Plugins/Win64/OVRLipSync.dll.meta
@@ -0,0 +1,114 @@
+fileFormatVersion: 2
+guid: cffe8c2b7142fa3438fc1b6ccaeda372
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ - first:
+ '': Any
+ second:
+ enabled: 0
+ settings:
+ Exclude Android: 1
+ Exclude Editor: 0
+ Exclude Linux: 1
+ Exclude Linux64: 1
+ Exclude LinuxUniversal: 1
+ Exclude OSXIntel: 1
+ Exclude OSXIntel64: 1
+ Exclude OSXUniversal: 1
+ Exclude Win: 1
+ Exclude Win64: 0
+ - first:
+ '': Editor
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ OS: Windows
+ - first:
+ Android: Android
+ second:
+ enabled: 0
+ settings:
+ CPU: ARMv7
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ OS: Windows
+ - first:
+ Facebook: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Facebook: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: Linux
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: Linux64
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ - first:
+ Standalone: LinuxUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: OSXIntel
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: OSXIntel64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: Win64
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Prefabs.meta b/Assets/Oculus/LipSync/Prefabs.meta
new file mode 100644
index 0000000..22fa868
--- /dev/null
+++ b/Assets/Oculus/LipSync/Prefabs.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 4b22c2612a8292646806a50f38127837
+folderAsset: yes
+timeCreated: 1439846444
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Prefabs/LipSyncDebugConsole.prefab b/Assets/Oculus/LipSync/Prefabs/LipSyncDebugConsole.prefab
new file mode 100644
index 0000000..c6114da
--- /dev/null
+++ b/Assets/Oculus/LipSync/Prefabs/LipSyncDebugConsole.prefab
@@ -0,0 +1,231 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &100658
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 22469590}
+ - component: {fileID: 22212472}
+ - component: {fileID: 11460950}
+ m_Layer: 0
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &130260
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 22402796}
+ - component: {fileID: 22301806}
+ - component: {fileID: 11495334}
+ - component: {fileID: 11476360}
+ - component: {fileID: 114222500392608660}
+ m_Layer: 0
+ m_Name: LipSyncDebugConsole
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &11460950
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 100658}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+ Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 5
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 5
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: '1
+
+ 2
+
+ 3
+
+ 4
+
+ 5
+
+ 6
+
+ 7
+
+ 8
+
+ 9
+
+ 10
+
+ 11
+
+ 12
+
+ 13
+
+ 14
+
+ 15'
+--- !u!114 &11476360
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 130260}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &11495334
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 130260}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 10
+--- !u!222 &22212472
+CanvasRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 100658}
+--- !u!223 &22301806
+Canvas:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 130260}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 2
+ m_Camera: {fileID: 0}
+ m_PlaneDistance: 100
+ m_PixelPerfect: 0
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_AdditionalShaderChannelsFlag: 25
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!224 &22402796
+RectTransform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 130260}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 3.5}
+ m_LocalScale: {x: 0.05, y: 0.05, z: 0.2}
+ m_Children:
+ - {fileID: 22469590}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0.18, y: 0}
+ m_SizeDelta: {x: 1024, y: 1024}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!224 &22469590
+RectTransform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 100658}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -19.76}
+ m_LocalScale: {x: 0.3, y: 0.3, z: 1}
+ m_Children: []
+ m_Father: {fileID: 22402796}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 120, y: 90}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 0}
+ propertyPath: m_AnchoredPosition.x
+ value: .200000003
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_AnchoredPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 130260}
+ m_IsPrefabParent: 1
+--- !u!114 &114222500392608660
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 130260}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c60ad94815c68aa41a786306cd588495, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ maxMessages: 15
+ textMsg: {fileID: 11460950}
diff --git a/Assets/Oculus/LipSync/Prefabs/LipSyncDebugConsole.prefab.meta b/Assets/Oculus/LipSync/Prefabs/LipSyncDebugConsole.prefab.meta
new file mode 100644
index 0000000..f1cf087
--- /dev/null
+++ b/Assets/Oculus/LipSync/Prefabs/LipSyncDebugConsole.prefab.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: e4c63fc874ed2ed42b7808b1a310238a
+timeCreated: 1531440959
+licenseType: Store
+NativeFormatImporter:
+ mainObjectFileID: -1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Prefabs/LipSyncInterface.prefab b/Assets/Oculus/LipSync/Prefabs/LipSyncInterface.prefab
new file mode 100644
index 0000000..bef5083
--- /dev/null
+++ b/Assets/Oculus/LipSync/Prefabs/LipSyncInterface.prefab
@@ -0,0 +1,52 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &135588
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 452380}
+ - 114: {fileID: 11448948}
+ m_Layer: 0
+ m_Name: LipSyncInterface
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &452380
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 135588}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+--- !u!114 &11448948
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 135588}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 82aa5cb7a870de440baadff9083be41c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 135588}
+ m_IsPrefabParent: 1
diff --git a/Assets/Oculus/LipSync/Prefabs/LipSyncInterface.prefab.meta b/Assets/Oculus/LipSync/Prefabs/LipSyncInterface.prefab.meta
new file mode 100644
index 0000000..f4a37c5
--- /dev/null
+++ b/Assets/Oculus/LipSync/Prefabs/LipSyncInterface.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4dd277bd9572488489906165e0931952
+timeCreated: 1444054820
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Prefabs/LipSyncMorphTarget_Lips.prefab b/Assets/Oculus/LipSync/Prefabs/LipSyncMorphTarget_Lips.prefab
new file mode 100644
index 0000000..8e26f9b
--- /dev/null
+++ b/Assets/Oculus/LipSync/Prefabs/LipSyncMorphTarget_Lips.prefab
@@ -0,0 +1,319 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &129940
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 441704}
+ - component: {fileID: 13719198}
+ m_Layer: 0
+ m_Name: Lips
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &145636
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 453756}
+ - component: {fileID: 82343288607552526}
+ - component: {fileID: 114997623160390080}
+ - component: {fileID: 114027978466431892}
+ - component: {fileID: 114119601008119326}
+ m_Layer: 0
+ m_Name: LipSyncMorphTarget_Lips
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &158592
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 487160}
+ m_Layer: 0
+ m_Name: CATRigHub001Bone001
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &180920
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 430042}
+ m_Layer: 0
+ m_Name: CATRigHub001
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &430042
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 180920}
+ m_LocalRotation: {x: 0.50000006, y: -0.49999994, z: -0.49999994, w: 0.50000006}
+ m_LocalPosition: {x: 0, y: 2.540402e-10, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 487160}
+ m_Father: {fileID: 453756}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &441704
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 129940}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 453756}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &453756
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 145636}
+ m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000004371139}
+ m_LocalPosition: {x: -0.0060624, y: 1.3265, z: 1.3063}
+ m_LocalScale: {x: 24.37002, y: 24.369999, z: 24.369999}
+ m_Children:
+ - {fileID: 430042}
+ - {fileID: 441704}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &487160
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 158592}
+ m_LocalRotation: {x: -0.000000007749827, y: 0.0000001449285, z: 0.92387956, w: -0.38268346}
+ m_LocalPosition: {x: 0.04366988, y: -0.04479638, z: 0.000000006366835}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 430042}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!137 &13719198
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 129940}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: 58a7d4ae76f707641b7844bef3c8dbcb, type: 2}
+ - {fileID: 2100000, guid: e9d2e6e00d03b7b4d91a738089017154, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300000, guid: 8962b26653269f348a9494917de56179, type: 3}
+ m_Bones:
+ - {fileID: 430042}
+ - {fileID: 487160}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 430042}
+ m_AABB:
+ m_Center: {x: 0.06661779, y: 0.037860263, z: 0.0007256884}
+ m_Extent: {x: 0.033817604, y: 0.033817615, z: 0.043897264}
+ m_DirtyAABB: 0
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 145636}
+ m_IsPrefabParent: 1
+--- !u!82 &82343288607552526
+AudioSource:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 145636}
+ m_Enabled: 1
+ serializedVersion: 4
+ OutputAudioMixerGroup: {fileID: 0}
+ m_audioClip: {fileID: 0}
+ m_PlayOnAwake: 1
+ m_Volume: 1
+ m_Pitch: 1
+ Loop: 0
+ Mute: 0
+ Spatialize: 0
+ SpatializePostEffects: 0
+ Priority: 128
+ DopplerLevel: 1
+ MinDistance: 1
+ MaxDistance: 500
+ Pan2D: 0
+ rolloffMode: 0
+ BypassEffects: 0
+ BypassListenerEffects: 0
+ BypassReverbZones: 0
+ rolloffCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ - serializedVersion: 2
+ time: 1
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ panLevelCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ spreadCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ reverbZoneMixCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+--- !u!114 &114027978466431892
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 145636}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b0b97b38f2f1fd24185315141a6c6a56, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ skinnedMeshRenderer: {fileID: 13719198}
+ visemeToBlendTargets: 000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e000000
+ enableVisemeTestKeys: 0
+ visemeTestKeys: 600000000900000071000000770000006500000072000000740000007900000075000000690000006f000000700000005b0000005d0000005c000000
+ smoothAmount: 70
+--- !u!114 &114119601008119326
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 145636}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 02d5ed157083b494e85013bad8fd5e12, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ audioSource: {fileID: 0}
+ enableMicSelectionGUI: 0
+ micSelectionGUIKey: 109
+ micInputVolume: 100
+ micFrequency: 48000
+ micControl: 2
+ micActivationKey: 32
+ selectedDevice:
+--- !u!114 &114997623160390080
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 145636}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f43c520a9bad8a3489109c869f454576, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ audioSource: {fileID: 0}
+ provider: 1
+ enableKeyboardInput: 0
+ enableTouchInput: 0
+ audioLoopback: 0
+ loopbackKey: 108
+ showVisemes: 0
+ debugVisemesKey: 100
+ skipAudioSource: 0
+ gain: 1
+ debugLaughterKey: 104
+ showLaughter: 0
+ laughterScore: 0
diff --git a/Assets/Oculus/LipSync/Prefabs/LipSyncMorphTarget_Lips.prefab.meta b/Assets/Oculus/LipSync/Prefabs/LipSyncMorphTarget_Lips.prefab.meta
new file mode 100644
index 0000000..695c048
--- /dev/null
+++ b/Assets/Oculus/LipSync/Prefabs/LipSyncMorphTarget_Lips.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 560a84bf6071fad48848833c305e784a
+timeCreated: 1448408082
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Prefabs/LipSyncTextureFlipTarget_Robot.prefab b/Assets/Oculus/LipSync/Prefabs/LipSyncTextureFlipTarget_Robot.prefab
new file mode 100644
index 0000000..cf43010
--- /dev/null
+++ b/Assets/Oculus/LipSync/Prefabs/LipSyncTextureFlipTarget_Robot.prefab
@@ -0,0 +1,865 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &103710
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 491976}
+ - component: {fileID: 3309526}
+ - component: {fileID: 2396152}
+ m_Layer: 0
+ m_Name: Head-0
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &112224
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 434670}
+ - component: {fileID: 3317174}
+ - component: {fileID: 2383438}
+ m_Layer: 0
+ m_Name: Head-3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &115398
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 470322}
+ - component: {fileID: 3318132}
+ - component: {fileID: 2341214}
+ m_Layer: 0
+ m_Name: Head-2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &116614
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 495278}
+ - component: {fileID: 3338656}
+ - component: {fileID: 2347176}
+ m_Layer: 0
+ m_Name: mouth
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &117196
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 432198}
+ - component: {fileID: 8298520}
+ - component: {fileID: 11445718}
+ - component: {fileID: 11420510}
+ - component: {fileID: 11441082}
+ m_Layer: 0
+ m_Name: LipSyncTextureFlipTarget_Robot
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &134126
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 424882}
+ m_Layer: 0
+ m_Name: RobotHead_TextureFlip
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &150352
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 494442}
+ - component: {fileID: 3309632}
+ - component: {fileID: 2341078}
+ m_Layer: 0
+ m_Name: Head-5
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &167146
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 426320}
+ - component: {fileID: 3353070}
+ - component: {fileID: 2371382}
+ m_Layer: 0
+ m_Name: Eye-r
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &171898
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 470930}
+ - component: {fileID: 3350328}
+ - component: {fileID: 2316538}
+ m_Layer: 0
+ m_Name: Head-4
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &179166
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 422502}
+ - component: {fileID: 3346774}
+ - component: {fileID: 2317534}
+ m_Layer: 0
+ m_Name: Head-1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &192526
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 401646}
+ - component: {fileID: 3367782}
+ - component: {fileID: 2319444}
+ m_Layer: 0
+ m_Name: Eye-l
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &401646
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 192526}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: -0.04058239, y: 0, z: 0.0022434187}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 424882}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &422502
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 179166}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 424882}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &424882
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 134126}
+ 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: 401646}
+ - {fileID: 426320}
+ - {fileID: 491976}
+ - {fileID: 422502}
+ - {fileID: 470322}
+ - {fileID: 434670}
+ - {fileID: 470930}
+ - {fileID: 494442}
+ - {fileID: 495278}
+ m_Father: {fileID: 432198}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &426320
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 167146}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0.04058, y: 0, z: 0.0022309874}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 424882}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &432198
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 117196}
+ m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000004371139}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 5.275625, y: 5.2756267, z: 5.2756267}
+ m_Children:
+ - {fileID: 424882}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &434670
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 112224}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 424882}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &470322
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 115398}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 424882}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &470930
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 171898}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 424882}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &491976
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 103710}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 424882}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &494442
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 150352}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 424882}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &495278
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 116614}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 424882}
+ m_RootOrder: 8
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &2316538
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 171898}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &2317534
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 179166}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &2319444
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 192526}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &2341078
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 150352}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &2341214
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 115398}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &2347176
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 116614}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: 5290b3a55eaa1b7458665dc2d856c042, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &2371382
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 167146}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &2383438
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 112224}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &2396152
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 103710}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &3309526
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 103710}
+ m_Mesh: {fileID: 4300000, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!33 &3309632
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 150352}
+ m_Mesh: {fileID: 4300006, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!33 &3317174
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 112224}
+ m_Mesh: {fileID: 4300008, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!33 &3318132
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 115398}
+ m_Mesh: {fileID: 4300012, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!33 &3338656
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 116614}
+ m_Mesh: {fileID: 4300016, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!33 &3346774
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 179166}
+ m_Mesh: {fileID: 4300014, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!33 &3350328
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 171898}
+ m_Mesh: {fileID: 4300010, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!33 &3353070
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 167146}
+ m_Mesh: {fileID: 4300002, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!33 &3367782
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 192526}
+ m_Mesh: {fileID: 4300004, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!82 &8298520
+AudioSource:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 117196}
+ m_Enabled: 1
+ serializedVersion: 4
+ OutputAudioMixerGroup: {fileID: 0}
+ m_audioClip: {fileID: 0}
+ m_PlayOnAwake: 1
+ m_Volume: 1
+ m_Pitch: 1
+ Loop: 1
+ Mute: 0
+ Spatialize: 0
+ SpatializePostEffects: 0
+ Priority: 128
+ DopplerLevel: 1
+ MinDistance: 1
+ MaxDistance: 500
+ Pan2D: 0
+ rolloffMode: 0
+ BypassEffects: 0
+ BypassListenerEffects: 0
+ BypassReverbZones: 0
+ rolloffCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ - serializedVersion: 2
+ time: 1
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ panLevelCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ spreadCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ reverbZoneMixCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+--- !u!114 &11420510
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 117196}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f43c520a9bad8a3489109c869f454576, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ audioSource: {fileID: 0}
+ provider: 0
+ enableAcceleration: 1
+ enableKeyboardInput: 0
+ enableTouchInput: 0
+ audioLoopback: 0
+ loopbackKey: 108
+ showVisemes: 0
+ debugVisemesKey: 100
+ skipAudioSource: 0
+ gain: 1
+ debugLaughterKey: 104
+ showLaughter: 0
+ laughterScore: 0
+--- !u!114 &11441082
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 117196}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: bc30a49f30010eb42a8b59ec685eac57, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ material: {fileID: 2100000, guid: 5290b3a55eaa1b7458665dc2d856c042, type: 2}
+ Textures:
+ - {fileID: 2800000, guid: 46b2920291e9b8c4888ad3fe3f5e5e69, type: 3}
+ - {fileID: 2800000, guid: bea5b996ab6235c4aaa1be9b11aea8c4, type: 3}
+ - {fileID: 2800000, guid: 5563aa34057c347499c480ea33c5d593, type: 3}
+ - {fileID: 2800000, guid: d14bb80824ed25b44a65ddfc7f591e29, type: 3}
+ - {fileID: 2800000, guid: ffbd7db31d3ad6e4a97a2f312babdcb6, type: 3}
+ - {fileID: 2800000, guid: ba0b9f69af91c5f46b490346e5552136, type: 3}
+ - {fileID: 2800000, guid: 5e6531e8f56b42547b8d2ddf7a7363d1, type: 3}
+ - {fileID: 2800000, guid: 31e6326c0bd6143479322c5b4a5fe949, type: 3}
+ - {fileID: 2800000, guid: 9c21cf8c4dffca9418cebd0a578972b4, type: 3}
+ - {fileID: 2800000, guid: 6d47a54f2b89a59459fd7561d360bab2, type: 3}
+ - {fileID: 2800000, guid: 5c06354455999f94ea26114e261dde6d, type: 3}
+ - {fileID: 2800000, guid: 29a06a0eefee1b542a7c286f1689ffab, type: 3}
+ - {fileID: 2800000, guid: ad60c8114191fdf41aa0ea64e132add9, type: 3}
+ - {fileID: 2800000, guid: 5f658e6e48970d340b4491a5fc959251, type: 3}
+ - {fileID: 2800000, guid: 660be1fdb8590b14bab012a991bdeb86, type: 3}
+ smoothAmount: 70
+--- !u!114 &11445718
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 117196}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 02d5ed157083b494e85013bad8fd5e12, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ audioSource: {fileID: 0}
+ enableMicSelectionGUI: 0
+ micSelectionGUIKey: 109
+ micInputVolume: 100
+ micFrequency: 44100
+ micControl: 2
+ micActivationKey: 32
+ selectedDevice:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 0}
+ propertyPath: m_LocalPosition.z
+ value: -.0199999996
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: smoothing
+ value: .100000001
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 117196}
+ m_IsPrefabParent: 1
diff --git a/Assets/Oculus/LipSync/Prefabs/LipSyncTextureFlipTarget_Robot.prefab.meta b/Assets/Oculus/LipSync/Prefabs/LipSyncTextureFlipTarget_Robot.prefab.meta
new file mode 100644
index 0000000..f300ac8
--- /dev/null
+++ b/Assets/Oculus/LipSync/Prefabs/LipSyncTextureFlipTarget_Robot.prefab.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 8dc55266323c0ad439967b2975af7840
+timeCreated: 1531443155
+licenseType: Store
+NativeFormatImporter:
+ mainObjectFileID: -1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scenes.meta b/Assets/Oculus/LipSync/Scenes.meta
new file mode 100644
index 0000000..41c35d3
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scenes.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: e63268aff72466742ada144924d3f899
+folderAsset: yes
+timeCreated: 1437169810
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scenes/LipSync_Demo.unity b/Assets/Oculus/LipSync/Scenes/LipSync_Demo.unity
new file mode 100644
index 0000000..7512198
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scenes/LipSync_Demo.unity
@@ -0,0 +1,3849 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 8
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0, g: 0, b: 0, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 3
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_TemporalCoherenceThreshold: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 0
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 8
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_TextureWidth: 1024
+ m_TextureHeight: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 0
+ m_CompAOExponentDirect: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 1024
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 1
+ m_BakeBackend: 0
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 500
+ m_PVRBounces: 2
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVRFilteringMode: 0
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_LightingDataAsset: {fileID: 0}
+ m_ShadowMaskMode: 2
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &40758329
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 192526, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 40758330}
+ - component: {fileID: 40758332}
+ - component: {fileID: 40758331}
+ m_Layer: 0
+ m_Name: Eye-l
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &40758330
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 401646, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 40758329}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: -0.04058239, y: 0, z: 0.0022434187}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 179435422}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &40758331
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2319444, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 40758329}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &40758332
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3367782, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 40758329}
+ m_Mesh: {fileID: 4300004, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &53363732
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 129940, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 53363733}
+ - component: {fileID: 821062473}
+ m_Layer: 0
+ m_Name: Lips
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &53363733
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 441704, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 53363732}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 487962933}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &62209211
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 179166, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 62209212}
+ - component: {fileID: 62209214}
+ - component: {fileID: 62209213}
+ m_Layer: 0
+ m_Name: Head-1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &62209212
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 422502, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 62209211}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 248352994}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &62209213
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2317534, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 62209211}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &62209214
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3346774, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 62209211}
+ m_Mesh: {fileID: 4300014, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &154180562
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 129940, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 154180563}
+ - component: {fileID: 585547437}
+ m_Layer: 0
+ m_Name: Lips
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &154180563
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 441704, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 154180562}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1606394621}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &179435421
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 134126, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 179435422}
+ m_Layer: 0
+ m_Name: RobotHead_TextureFlip
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!4 &179435422
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 424882, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 179435421}
+ 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: 40758330}
+ - {fileID: 647328122}
+ - {fileID: 517460497}
+ - {fileID: 944784463}
+ - {fileID: 858979800}
+ - {fileID: 1424851706}
+ - {fileID: 849510517}
+ - {fileID: 1259867706}
+ - {fileID: 2060692847}
+ m_Father: {fileID: 374990896}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &235549188
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 116614, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 235549189}
+ - component: {fileID: 235549191}
+ - component: {fileID: 235549190}
+ m_Layer: 0
+ m_Name: mouth
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &235549189
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 495278, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 235549188}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1287138953}
+ m_RootOrder: 8
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &235549190
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2347176, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 235549188}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: 5290b3a55eaa1b7458665dc2d856c042, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &235549191
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3338656, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 235549188}
+ m_Mesh: {fileID: 4300016, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &243285116
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 158592, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 243285117}
+ m_Layer: 0
+ m_Name: CATRigHub001Bone001
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &243285117
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 487160, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 243285116}
+ m_LocalRotation: {x: -0.000000007749827, y: 0.0000001449285, z: 0.92387956, w: -0.38268346}
+ m_LocalPosition: {x: 0.04366988, y: -0.04479638, z: 0.000000006366835}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1409922301}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &246081074
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100658, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ m_PrefabInternal: {fileID: 1329084276}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 246081075}
+ - component: {fileID: 246081077}
+ - component: {fileID: 246081076}
+ m_Layer: 0
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &246081075
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 22469590, guid: e4c63fc874ed2ed42b7808b1a310238a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1329084276}
+ m_GameObject: {fileID: 246081074}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -19.76}
+ m_LocalScale: {x: 0.3, y: 0.3, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1274002662}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 120, y: 90}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &246081076
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11460950, guid: e4c63fc874ed2ed42b7808b1a310238a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1329084276}
+ m_GameObject: {fileID: 246081074}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+ Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 5
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 5
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: '1
+
+ 2
+
+ 3
+
+ 4
+
+ 5
+
+ 6
+
+ 7
+
+ 8
+
+ 9
+
+ 10
+
+ 11
+
+ 12
+
+ 13
+
+ 14
+
+ 15'
+--- !u!222 &246081077
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 22212472, guid: e4c63fc874ed2ed42b7808b1a310238a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1329084276}
+ m_GameObject: {fileID: 246081074}
+--- !u!1 &248352993
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 134126, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 248352994}
+ m_Layer: 0
+ m_Name: RobotHead_TextureFlip
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!4 &248352994
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 424882, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 248352993}
+ 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: 607596601}
+ - {fileID: 1888490520}
+ - {fileID: 1418019653}
+ - {fileID: 62209212}
+ - {fileID: 397965669}
+ - {fileID: 613418048}
+ - {fileID: 1869025298}
+ - {fileID: 1131081335}
+ - {fileID: 1120811692}
+ m_Father: {fileID: 1890348320}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &264253653
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 192526, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 264253654}
+ - component: {fileID: 264253656}
+ - component: {fileID: 264253655}
+ m_Layer: 0
+ m_Name: Eye-l
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &264253654
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 401646, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 264253653}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: -0.04058239, y: 0, z: 0.0022434187}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1287138953}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &264253655
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2319444, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 264253653}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &264253656
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3367782, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 264253653}
+ m_Mesh: {fileID: 4300004, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &268923770
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 180920, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 268923771}
+ m_Layer: 0
+ m_Name: CATRigHub001
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &268923771
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 430042, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 268923770}
+ m_LocalRotation: {x: 0.50000006, y: -0.49999994, z: -0.49999994, w: 0.50000006}
+ m_LocalPosition: {x: 0, y: 2.540402e-10, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 527163192}
+ m_Father: {fileID: 487962933}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &374990895
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 117196, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 374990896}
+ - component: {fileID: 374990900}
+ - component: {fileID: 374990899}
+ - component: {fileID: 374990898}
+ - component: {fileID: 374990897}
+ m_Layer: 0
+ m_Name: InputType_Sample
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!4 &374990896
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 432198, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 374990895}
+ m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000004371139}
+ m_LocalPosition: {x: 0, y: -0.053178, z: 4.6801}
+ m_LocalScale: {x: 23.200296, y: 23.200312, z: 23.200312}
+ m_Children:
+ - {fileID: 179435422}
+ - {fileID: 487962933}
+ m_Father: {fileID: 1225020793}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &374990897
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 374990895}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b0b97b38f2f1fd24185315141a6c6a56, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ skinnedMeshRenderer: {fileID: 821062473}
+ visemeToBlendTargets: 000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e000000
+ enableVisemeTestKeys: 1
+ visemeTestKeys: 600000000900000071000000770000006500000072000000740000007900000075000000690000006f000000700000005b0000005d0000005c000000
+ laughterKey: 301
+ laughterBlendTarget: 15
+ laughterThreshold: 0.5
+ laughterMultiplier: 1.5
+ smoothAmount: 70
+--- !u!114 &374990898
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11441082, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 374990895}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: bc30a49f30010eb42a8b59ec685eac57, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ material: {fileID: 2100000, guid: 5290b3a55eaa1b7458665dc2d856c042, type: 2}
+ Textures:
+ - {fileID: 2800000, guid: 46b2920291e9b8c4888ad3fe3f5e5e69, type: 3}
+ - {fileID: 2800000, guid: bea5b996ab6235c4aaa1be9b11aea8c4, type: 3}
+ - {fileID: 2800000, guid: 5563aa34057c347499c480ea33c5d593, type: 3}
+ - {fileID: 2800000, guid: d14bb80824ed25b44a65ddfc7f591e29, type: 3}
+ - {fileID: 2800000, guid: ffbd7db31d3ad6e4a97a2f312babdcb6, type: 3}
+ - {fileID: 2800000, guid: ba0b9f69af91c5f46b490346e5552136, type: 3}
+ - {fileID: 2800000, guid: 5e6531e8f56b42547b8d2ddf7a7363d1, type: 3}
+ - {fileID: 2800000, guid: 31e6326c0bd6143479322c5b4a5fe949, type: 3}
+ - {fileID: 2800000, guid: 9c21cf8c4dffca9418cebd0a578972b4, type: 3}
+ - {fileID: 2800000, guid: 6d47a54f2b89a59459fd7561d360bab2, type: 3}
+ - {fileID: 2800000, guid: 5c06354455999f94ea26114e261dde6d, type: 3}
+ - {fileID: 2800000, guid: 29a06a0eefee1b542a7c286f1689ffab, type: 3}
+ - {fileID: 2800000, guid: ad60c8114191fdf41aa0ea64e132add9, type: 3}
+ - {fileID: 2800000, guid: 5f658e6e48970d340b4491a5fc959251, type: 3}
+ - {fileID: 2800000, guid: 660be1fdb8590b14bab012a991bdeb86, type: 3}
+ smoothAmount: 70
+--- !u!114 &374990899
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11420510, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 374990895}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f43c520a9bad8a3489109c869f454576, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ audioSource: {fileID: 0}
+ provider: 1
+ enableAcceleration: 1
+ enableKeyboardInput: 1
+ enableTouchInput: 1
+ audioLoopback: 1
+ loopbackKey: 108
+ showVisemes: 0
+ debugVisemesKey: 100
+ skipAudioSource: 0
+ gain: 1
+ debugLaughterKey: 101
+ showLaughter: 0
+ laughterScore: 0
+--- !u!82 &374990900
+AudioSource:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 8298520, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 374990895}
+ m_Enabled: 1
+ serializedVersion: 4
+ OutputAudioMixerGroup: {fileID: 0}
+ m_audioClip: {fileID: 8300000, guid: e21cea670b0f32c428ee862e590a7108, type: 3}
+ m_PlayOnAwake: 1
+ m_Volume: 1
+ m_Pitch: 1
+ Loop: 1
+ Mute: 0
+ Spatialize: 0
+ SpatializePostEffects: 0
+ Priority: 128
+ DopplerLevel: 1
+ MinDistance: 1
+ MaxDistance: 500
+ Pan2D: 0
+ rolloffMode: 0
+ BypassEffects: 0
+ BypassListenerEffects: 0
+ BypassReverbZones: 0
+ rolloffCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ - serializedVersion: 2
+ time: 1
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ panLevelCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ spreadCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ reverbZoneMixCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+--- !u!1 &397965668
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 115398, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 397965669}
+ - component: {fileID: 397965671}
+ - component: {fileID: 397965670}
+ m_Layer: 0
+ m_Name: Head-2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &397965669
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 470322, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 397965668}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 248352994}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &397965670
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2341214, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 397965668}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &397965671
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3318132, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 397965668}
+ m_Mesh: {fileID: 4300012, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &414768379
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 115398, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 414768380}
+ - component: {fileID: 414768382}
+ - component: {fileID: 414768381}
+ m_Layer: 0
+ m_Name: Head-2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &414768380
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 470322, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 414768379}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1287138953}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &414768381
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2341214, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 414768379}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &414768382
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3318132, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 414768379}
+ m_Mesh: {fileID: 4300012, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &487962932
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 145636, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 487962933}
+ m_Layer: 0
+ m_Name: LipSyncMorphTarget_Lips
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &487962933
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 453756, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 487962932}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0.0002612943, y: 0.05946808, z: 0.14542045}
+ m_LocalScale: {x: 1.0504185, y: 1.0504168, z: 1.0504168}
+ m_Children:
+ - {fileID: 268923771}
+ - {fileID: 53363733}
+ m_Father: {fileID: 374990896}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &517460496
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 103710, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 517460497}
+ - component: {fileID: 517460499}
+ - component: {fileID: 517460498}
+ m_Layer: 0
+ m_Name: Head-0
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &517460497
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 491976, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 517460496}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 179435422}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &517460498
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2396152, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 517460496}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &517460499
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3309526, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 517460496}
+ m_Mesh: {fileID: 4300000, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &527163191
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 158592, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 527163192}
+ m_Layer: 0
+ m_Name: CATRigHub001Bone001
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &527163192
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 487160, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 527163191}
+ m_LocalRotation: {x: -0.000000007749827, y: 0.0000001449285, z: 0.92387956, w: -0.38268346}
+ m_LocalPosition: {x: 0.04366988, y: -0.04479638, z: 0.000000006366835}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 268923771}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &530950414
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 171898, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 530950415}
+ - component: {fileID: 530950417}
+ - component: {fileID: 530950416}
+ m_Layer: 0
+ m_Name: Head-4
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &530950415
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 470930, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 530950414}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1287138953}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &530950416
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2316538, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 530950414}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &530950417
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3350328, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 530950414}
+ m_Mesh: {fileID: 4300010, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!137 &585547437
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 13719198, guid: 560a84bf6071fad48848833c305e784a,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 154180562}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: 58a7d4ae76f707641b7844bef3c8dbcb, type: 2}
+ - {fileID: 2100000, guid: e9d2e6e00d03b7b4d91a738089017154, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300000, guid: 8962b26653269f348a9494917de56179, type: 3}
+ m_Bones:
+ - {fileID: 958171742}
+ - {fileID: 2018471941}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 958171742}
+ m_AABB:
+ m_Center: {x: 0.06661779, y: 0.037860263, z: 0.0007256884}
+ m_Extent: {x: 0.033817604, y: 0.033817615, z: 0.043897264}
+ m_DirtyAABB: 0
+--- !u!1 &607596600
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 192526, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 607596601}
+ - component: {fileID: 607596603}
+ - component: {fileID: 607596602}
+ m_Layer: 0
+ m_Name: Eye-l
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &607596601
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 401646, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 607596600}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: -0.04058239, y: 0, z: 0.0022434187}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 248352994}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &607596602
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2319444, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 607596600}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &607596603
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3367782, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 607596600}
+ m_Mesh: {fileID: 4300004, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &613418047
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 112224, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 613418048}
+ - component: {fileID: 613418050}
+ - component: {fileID: 613418049}
+ m_Layer: 0
+ m_Name: Head-3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &613418048
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 434670, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 613418047}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 248352994}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &613418049
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2383438, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 613418047}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &613418050
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3317174, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 613418047}
+ m_Mesh: {fileID: 4300008, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &617133040
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 112224, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 617133041}
+ - component: {fileID: 617133043}
+ - component: {fileID: 617133042}
+ m_Layer: 0
+ m_Name: Head-3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &617133041
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 434670, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 617133040}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1287138953}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &617133042
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2383438, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 617133040}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &617133043
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3317174, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 617133040}
+ m_Mesh: {fileID: 4300008, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &647328121
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 167146, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 647328122}
+ - component: {fileID: 647328124}
+ - component: {fileID: 647328123}
+ m_Layer: 0
+ m_Name: Eye-r
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &647328122
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 426320, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 647328121}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0.04058, y: 0, z: 0.0022309874}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 179435422}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &647328123
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2371382, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 647328121}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &647328124
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3353070, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 647328121}
+ m_Mesh: {fileID: 4300002, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &735768440
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 135588, guid: 4dd277bd9572488489906165e0931952, type: 2}
+ m_PrefabInternal: {fileID: 1567090761}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 735768442}
+ - component: {fileID: 735768441}
+ m_Layer: 0
+ m_Name: LipSyncInterface
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &735768441
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11448948, guid: 4dd277bd9572488489906165e0931952,
+ type: 2}
+ m_PrefabInternal: {fileID: 1567090761}
+ m_GameObject: {fileID: 735768440}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 82aa5cb7a870de440baadff9083be41c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &735768442
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 452380, guid: 4dd277bd9572488489906165e0931952, type: 2}
+ m_PrefabInternal: {fileID: 1567090761}
+ m_GameObject: {fileID: 735768440}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!137 &821062473
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 13719198, guid: 560a84bf6071fad48848833c305e784a,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 53363732}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: 58a7d4ae76f707641b7844bef3c8dbcb, type: 2}
+ - {fileID: 2100000, guid: e9d2e6e00d03b7b4d91a738089017154, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300000, guid: 8962b26653269f348a9494917de56179, type: 3}
+ m_Bones:
+ - {fileID: 268923771}
+ - {fileID: 527163192}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 268923771}
+ m_AABB:
+ m_Center: {x: 0.06661779, y: 0.037860263, z: 0.0007256884}
+ m_Extent: {x: 0.033817604, y: 0.033817615, z: 0.043897264}
+ m_DirtyAABB: 0
+--- !u!1 &849510516
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 171898, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 849510517}
+ - component: {fileID: 849510519}
+ - component: {fileID: 849510518}
+ m_Layer: 0
+ m_Name: Head-4
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &849510517
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 470930, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 849510516}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 179435422}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &849510518
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2316538, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 849510516}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &849510519
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3350328, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 849510516}
+ m_Mesh: {fileID: 4300010, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &858979799
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 115398, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 858979800}
+ - component: {fileID: 858979802}
+ - component: {fileID: 858979801}
+ m_Layer: 0
+ m_Name: Head-2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &858979800
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 470322, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 858979799}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 179435422}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &858979801
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2341214, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 858979799}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &858979802
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3318132, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 858979799}
+ m_Mesh: {fileID: 4300012, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!137 &887369093
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 13719198, guid: 560a84bf6071fad48848833c305e784a,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1472815620}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: 58a7d4ae76f707641b7844bef3c8dbcb, type: 2}
+ - {fileID: 2100000, guid: e9d2e6e00d03b7b4d91a738089017154, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4300000, guid: 8962b26653269f348a9494917de56179, type: 3}
+ m_Bones:
+ - {fileID: 1409922301}
+ - {fileID: 243285117}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 1409922301}
+ m_AABB:
+ m_Center: {x: 0.06661779, y: 0.037860263, z: 0.0007256884}
+ m_Extent: {x: 0.033817604, y: 0.033817615, z: 0.043897264}
+ m_DirtyAABB: 0
+--- !u!1 &944784462
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 179166, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 944784463}
+ - component: {fileID: 944784465}
+ - component: {fileID: 944784464}
+ m_Layer: 0
+ m_Name: Head-1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &944784463
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 422502, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 944784462}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 179435422}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &944784464
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2317534, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 944784462}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &944784465
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3346774, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 944784462}
+ m_Mesh: {fileID: 4300014, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &958171741
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 180920, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 958171742}
+ m_Layer: 0
+ m_Name: CATRigHub001
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &958171742
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 430042, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 958171741}
+ m_LocalRotation: {x: 0.50000006, y: -0.49999994, z: -0.49999994, w: 0.50000006}
+ m_LocalPosition: {x: 0, y: 2.540402e-10, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 2018471941}
+ m_Father: {fileID: 1606394621}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1120811691
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 116614, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1120811692}
+ - component: {fileID: 1120811694}
+ - component: {fileID: 1120811693}
+ m_Layer: 0
+ m_Name: mouth
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1120811692
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 495278, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1120811691}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 248352994}
+ m_RootOrder: 8
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1120811693
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2347176, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1120811691}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: 5290b3a55eaa1b7458665dc2d856c042, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &1120811694
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3338656, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1120811691}
+ m_Mesh: {fileID: 4300016, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &1131081334
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 150352, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1131081335}
+ - component: {fileID: 1131081337}
+ - component: {fileID: 1131081336}
+ m_Layer: 0
+ m_Name: Head-5
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1131081335
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 494442, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1131081334}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 248352994}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1131081336
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2341078, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1131081334}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &1131081337
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3309632, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1131081334}
+ m_Mesh: {fileID: 4300006, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &1138474938
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 179166, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1138474939}
+ - component: {fileID: 1138474941}
+ - component: {fileID: 1138474940}
+ m_Layer: 0
+ m_Name: Head-1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1138474939
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 422502, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1138474938}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1287138953}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1138474940
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2317534, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1138474938}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &1138474941
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3346774, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1138474938}
+ m_Mesh: {fileID: 4300014, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &1225020792
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1225020793}
+ - component: {fileID: 1225020795}
+ - component: {fileID: 1225020796}
+ - component: {fileID: 1225020794}
+ - component: {fileID: 1225020797}
+ m_Layer: 0
+ m_Name: LipSyncTargets
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1225020793
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1225020792}
+ 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: 1431814204}
+ - {fileID: 374990896}
+ - {fileID: 1890348320}
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1225020794
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1225020792}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c62f9b5ef85d22f449e72c67c610059d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ SwitchTargets:
+ - {fileID: 1225020795}
+ - {fileID: 1225020796}
+--- !u!114 &1225020795
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1225020792}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50cd36abe38c57646bcd09be2353f905, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ SwitchTargets:
+ - {fileID: 1431814203}
+ - {fileID: 374990895}
+ - {fileID: 1890348319}
+--- !u!114 &1225020796
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1225020792}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50cd36abe38c57646bcd09be2353f905, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ SwitchTargets:
+ - {fileID: 1606394620}
+ - {fileID: 1287138952}
+ - {fileID: 487962932}
+ - {fileID: 179435421}
+ - {fileID: 1465093623}
+ - {fileID: 248352993}
+--- !u!114 &1225020797
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1225020792}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8a6c32d06b48d244b9c65729404d2afe, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ rotateLeftKey: 276
+ rotateRightKey: 275
+ resetRotationKey: 274
+--- !u!1 &1259867705
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 150352, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1259867706}
+ - component: {fileID: 1259867708}
+ - component: {fileID: 1259867707}
+ m_Layer: 0
+ m_Name: Head-5
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1259867706
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 494442, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1259867705}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 179435422}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1259867707
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2341078, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1259867705}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &1259867708
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3309632, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1259867705}
+ m_Mesh: {fileID: 4300006, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &1269087058
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 103710, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1269087059}
+ - component: {fileID: 1269087061}
+ - component: {fileID: 1269087060}
+ m_Layer: 0
+ m_Name: Head-0
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1269087059
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 491976, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1269087058}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1287138953}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1269087060
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2396152, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1269087058}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &1269087061
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3309526, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1269087058}
+ m_Mesh: {fileID: 4300000, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &1274002657
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 130260, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ m_PrefabInternal: {fileID: 1329084276}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1274002662}
+ - component: {fileID: 1274002661}
+ - component: {fileID: 1274002660}
+ - component: {fileID: 1274002659}
+ - component: {fileID: 1274002658}
+ m_Layer: 0
+ m_Name: LipSyncDebugConsole
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1274002658
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 114222500392608660, guid: e4c63fc874ed2ed42b7808b1a310238a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1329084276}
+ m_GameObject: {fileID: 1274002657}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c60ad94815c68aa41a786306cd588495, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &1274002659
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11476360, guid: e4c63fc874ed2ed42b7808b1a310238a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1329084276}
+ m_GameObject: {fileID: 1274002657}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &1274002660
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11495334, guid: e4c63fc874ed2ed42b7808b1a310238a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1329084276}
+ m_GameObject: {fileID: 1274002657}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 10
+--- !u!223 &1274002661
+Canvas:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 22301806, guid: e4c63fc874ed2ed42b7808b1a310238a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1329084276}
+ m_GameObject: {fileID: 1274002657}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 2
+ m_Camera: {fileID: 0}
+ m_PlaneDistance: 100
+ m_PixelPerfect: 0
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_AdditionalShaderChannelsFlag: 25
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!224 &1274002662
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1329084276}
+ m_GameObject: {fileID: 1274002657}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 3.5}
+ m_LocalScale: {x: 0.05, y: 0.05, z: 0.2}
+ m_Children:
+ - {fileID: 246081075}
+ m_Father: {fileID: 0}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0.18, y: 0}
+ m_SizeDelta: {x: 1024, y: 1024}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &1287138952
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 134126, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1287138953}
+ m_Layer: 0
+ m_Name: RobotHead_TextureFlip
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!4 &1287138953
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 424882, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1287138952}
+ 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: 264253654}
+ - {fileID: 1541036004}
+ - {fileID: 1269087059}
+ - {fileID: 1138474939}
+ - {fileID: 414768380}
+ - {fileID: 617133041}
+ - {fileID: 530950415}
+ - {fileID: 1475160843}
+ - {fileID: 235549189}
+ m_Father: {fileID: 1431814204}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &1329084276
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 3.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ propertyPath: m_RootOrder
+ value: 4
+ objectReference: {fileID: 0}
+ - target: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ propertyPath: m_AnchoredPosition.x
+ value: 0.18
+ objectReference: {fileID: 0}
+ - target: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ propertyPath: m_AnchoredPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ propertyPath: m_SizeDelta.x
+ value: 1024
+ objectReference: {fileID: 0}
+ - target: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ propertyPath: m_SizeDelta.y
+ value: 1024
+ objectReference: {fileID: 0}
+ - target: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ propertyPath: m_AnchorMin.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ propertyPath: m_AnchorMin.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ propertyPath: m_AnchorMax.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ propertyPath: m_AnchorMax.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ propertyPath: m_Pivot.x
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 22402796, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ propertyPath: m_Pivot.y
+ value: 0.5
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: e4c63fc874ed2ed42b7808b1a310238a, type: 2}
+ m_RootGameObject: {fileID: 1274002657}
+ m_IsPrefabParent: 0
+--- !u!1 &1409922300
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 180920, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1409922301}
+ m_Layer: 0
+ m_Name: CATRigHub001
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1409922301
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 430042, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1409922300}
+ m_LocalRotation: {x: 0.50000006, y: -0.49999994, z: -0.49999994, w: 0.50000006}
+ m_LocalPosition: {x: 0, y: 2.540402e-10, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 243285117}
+ m_Father: {fileID: 1465093624}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1418019652
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 103710, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1418019653}
+ - component: {fileID: 1418019655}
+ - component: {fileID: 1418019654}
+ m_Layer: 0
+ m_Name: Head-0
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1418019653
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 491976, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1418019652}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 248352994}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1418019654
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2396152, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1418019652}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &1418019655
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3309526, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1418019652}
+ m_Mesh: {fileID: 4300000, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &1424851705
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 112224, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1424851706}
+ - component: {fileID: 1424851708}
+ - component: {fileID: 1424851707}
+ m_Layer: 0
+ m_Name: Head-3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1424851706
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 434670, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1424851705}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 179435422}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1424851707
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2383438, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1424851705}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &1424851708
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3317174, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1424851705}
+ m_Mesh: {fileID: 4300008, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &1431814203
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 117196, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1431814204}
+ - component: {fileID: 1431814208}
+ - component: {fileID: 1431814207}
+ - component: {fileID: 1431814206}
+ - component: {fileID: 1431814205}
+ - component: {fileID: 1431814209}
+ m_Layer: 0
+ m_Name: InputType_Microphone
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1431814204
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 432198, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1431814203}
+ m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000004371139}
+ m_LocalPosition: {x: -0, y: -0.053178, z: 4.6801}
+ m_LocalScale: {x: 23.200296, y: 23.200312, z: 23.200312}
+ m_Children:
+ - {fileID: 1287138953}
+ - {fileID: 1606394621}
+ m_Father: {fileID: 1225020793}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1431814205
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11441082, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1431814203}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: bc30a49f30010eb42a8b59ec685eac57, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ material: {fileID: 2100000, guid: 5290b3a55eaa1b7458665dc2d856c042, type: 2}
+ Textures:
+ - {fileID: 2800000, guid: 46b2920291e9b8c4888ad3fe3f5e5e69, type: 3}
+ - {fileID: 2800000, guid: bea5b996ab6235c4aaa1be9b11aea8c4, type: 3}
+ - {fileID: 2800000, guid: 5563aa34057c347499c480ea33c5d593, type: 3}
+ - {fileID: 2800000, guid: d14bb80824ed25b44a65ddfc7f591e29, type: 3}
+ - {fileID: 2800000, guid: ffbd7db31d3ad6e4a97a2f312babdcb6, type: 3}
+ - {fileID: 2800000, guid: ba0b9f69af91c5f46b490346e5552136, type: 3}
+ - {fileID: 2800000, guid: 5e6531e8f56b42547b8d2ddf7a7363d1, type: 3}
+ - {fileID: 2800000, guid: 31e6326c0bd6143479322c5b4a5fe949, type: 3}
+ - {fileID: 2800000, guid: 9c21cf8c4dffca9418cebd0a578972b4, type: 3}
+ - {fileID: 2800000, guid: 6d47a54f2b89a59459fd7561d360bab2, type: 3}
+ - {fileID: 2800000, guid: 5c06354455999f94ea26114e261dde6d, type: 3}
+ - {fileID: 2800000, guid: 29a06a0eefee1b542a7c286f1689ffab, type: 3}
+ - {fileID: 2800000, guid: ad60c8114191fdf41aa0ea64e132add9, type: 3}
+ - {fileID: 2800000, guid: 5f658e6e48970d340b4491a5fc959251, type: 3}
+ - {fileID: 2800000, guid: 660be1fdb8590b14bab012a991bdeb86, type: 3}
+ smoothAmount: 70
+--- !u!114 &1431814206
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11420510, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1431814203}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f43c520a9bad8a3489109c869f454576, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ audioSource: {fileID: 0}
+ provider: 1
+ enableAcceleration: 1
+ enableKeyboardInput: 1
+ enableTouchInput: 1
+ audioLoopback: 0
+ loopbackKey: 108
+ showVisemes: 0
+ debugVisemesKey: 100
+ skipAudioSource: 0
+ gain: 1
+ debugLaughterKey: 104
+ showLaughter: 0
+ laughterScore: 0
+--- !u!114 &1431814207
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11445718, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1431814203}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 02d5ed157083b494e85013bad8fd5e12, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ audioSource: {fileID: 0}
+ enableMicSelectionGUI: 1
+ micSelectionGUIKey: 109
+ micInputVolume: 100
+ micFrequency: 44100
+ micControl: 2
+ micActivationKey: 32
+ selectedDevice:
+--- !u!82 &1431814208
+AudioSource:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 8298520, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1431814203}
+ m_Enabled: 1
+ serializedVersion: 4
+ OutputAudioMixerGroup: {fileID: 0}
+ m_audioClip: {fileID: 0}
+ m_PlayOnAwake: 1
+ m_Volume: 1
+ m_Pitch: 1
+ Loop: 1
+ Mute: 0
+ Spatialize: 0
+ SpatializePostEffects: 0
+ Priority: 128
+ DopplerLevel: 1
+ MinDistance: 1
+ MaxDistance: 500
+ Pan2D: 0
+ rolloffMode: 0
+ BypassEffects: 0
+ BypassListenerEffects: 0
+ BypassReverbZones: 0
+ rolloffCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ - serializedVersion: 2
+ time: 1
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ panLevelCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ spreadCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ reverbZoneMixCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1.1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+--- !u!114 &1431814209
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1431814203}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b0b97b38f2f1fd24185315141a6c6a56, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ skinnedMeshRenderer: {fileID: 585547437}
+ visemeToBlendTargets: 000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e000000
+ enableVisemeTestKeys: 1
+ visemeTestKeys: 600000000900000071000000770000006500000072000000740000007900000075000000690000006f000000700000005b0000005d0000005c000000
+ laughterKey: 301
+ laughterBlendTarget: 15
+ laughterThreshold: 0.5
+ laughterMultiplier: 1.5
+ smoothAmount: 70
+--- !u!1 &1465093623
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 145636, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1465093624}
+ m_Layer: 0
+ m_Name: LipSyncMorphTarget_Lips
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1465093624
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 453756, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1465093623}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0.0002612943, y: 0.05946808, z: 0.14542045}
+ m_LocalScale: {x: 1.0504185, y: 1.0504168, z: 1.0504168}
+ m_Children:
+ - {fileID: 1409922301}
+ - {fileID: 1472815621}
+ m_Father: {fileID: 1890348320}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1472815620
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 129940, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1472815621}
+ - component: {fileID: 887369093}
+ m_Layer: 0
+ m_Name: Lips
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1472815621
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 441704, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1472815620}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1465093624}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1475160840
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 150352, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1475160843}
+ - component: {fileID: 1475160842}
+ - component: {fileID: 1475160841}
+ m_Layer: 0
+ m_Name: Head-5
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!23 &1475160841
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2341078, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1475160840}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &1475160842
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3309632, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1475160840}
+ m_Mesh: {fileID: 4300006, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!4 &1475160843
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 494442, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1475160840}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1287138953}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1541036003
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 167146, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1541036004}
+ - component: {fileID: 1541036006}
+ - component: {fileID: 1541036005}
+ m_Layer: 0
+ m_Name: Eye-r
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1541036004
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 426320, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1541036003}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0.04058, y: 0, z: 0.0022309874}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1287138953}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1541036005
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2371382, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1541036003}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &1541036006
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3353070, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1541036003}
+ m_Mesh: {fileID: 4300002, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1001 &1567090761
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 452380, guid: 4dd277bd9572488489906165e0931952, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 452380, guid: 4dd277bd9572488489906165e0931952, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 452380, guid: 4dd277bd9572488489906165e0931952, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 452380, guid: 4dd277bd9572488489906165e0931952, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 452380, guid: 4dd277bd9572488489906165e0931952, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 452380, guid: 4dd277bd9572488489906165e0931952, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 452380, guid: 4dd277bd9572488489906165e0931952, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 452380, guid: 4dd277bd9572488489906165e0931952, type: 2}
+ propertyPath: m_RootOrder
+ value: 2
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 4dd277bd9572488489906165e0931952, type: 2}
+ m_RootGameObject: {fileID: 735768440}
+ m_IsPrefabParent: 0
+--- !u!1 &1606394620
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 145636, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1606394621}
+ m_Layer: 0
+ m_Name: LipSyncMorphTarget_Lips
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1606394621
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 453756, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1606394620}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0.0002612943, y: 0.05946808, z: 0.14542045}
+ m_LocalScale: {x: 1.0504185, y: 1.0504168, z: 1.0504168}
+ m_Children:
+ - {fileID: 958171742}
+ - {fileID: 154180563}
+ m_Father: {fileID: 1431814204}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1787721078
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1787721083}
+ - component: {fileID: 1787721082}
+ - component: {fileID: 1787721081}
+ - component: {fileID: 1787721080}
+ - component: {fileID: 1787721079}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!81 &1787721079
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1787721078}
+ m_Enabled: 1
+--- !u!124 &1787721080
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1787721078}
+ m_Enabled: 1
+--- !u!92 &1787721081
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1787721078}
+ m_Enabled: 1
+--- !u!20 &1787721082
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1787721078}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 2
+ m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0.019607844}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 0
+ m_AllowMSAA: 1
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+ m_StereoMirrorMode: 0
+--- !u!4 &1787721083
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1787721078}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -1.75}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1869025297
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 171898, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1869025298}
+ - component: {fileID: 1869025300}
+ - component: {fileID: 1869025299}
+ m_Layer: 0
+ m_Name: Head-4
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1869025298
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 470930, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1869025297}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 248352994}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1869025299
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2316538, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1869025297}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &1869025300
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3350328, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1869025297}
+ m_Mesh: {fileID: 4300010, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &1887588324
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1887588326}
+ - component: {fileID: 1887588325}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &1887588325
+Light:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1887588324}
+ m_Enabled: 1
+ serializedVersion: 8
+ m_Type: 1
+ m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 0
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_Lightmapping: 4
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &1887588326
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1887588324}
+ m_LocalRotation: {x: 0.127201, y: 0.03304149, z: 0.37142983, w: 0.9191127}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1888490519
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 167146, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1888490520}
+ - component: {fileID: 1888490522}
+ - component: {fileID: 1888490521}
+ m_Layer: 0
+ m_Name: Eye-r
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1888490520
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 426320, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1888490519}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0.04058, y: 0, z: 0.0022309874}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 248352994}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1888490521
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2371382, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1888490519}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: b8f002f88e9d7e847b5306f3338f80db, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &1888490522
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3353070, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1888490519}
+ m_Mesh: {fileID: 4300002, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
+--- !u!1 &1890348319
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 117196, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1890348320}
+ - component: {fileID: 1890348325}
+ - component: {fileID: 1890348324}
+ - component: {fileID: 1890348323}
+ - component: {fileID: 1890348322}
+ m_Layer: 0
+ m_Name: InputType_SampleCanned
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!4 &1890348320
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 432198, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1890348319}
+ m_LocalRotation: {x: -0, y: 1, z: -0, w: -0.00000004371139}
+ m_LocalPosition: {x: 0, y: -0.053178, z: 4.6801}
+ m_LocalScale: {x: 23.2003, y: 23.20031, z: 23.20031}
+ m_Children:
+ - {fileID: 248352994}
+ - {fileID: 1465093624}
+ m_Father: {fileID: 1225020793}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1890348322
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1890348319}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b0b97b38f2f1fd24185315141a6c6a56, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ skinnedMeshRenderer: {fileID: 887369093}
+ visemeToBlendTargets: 000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e000000
+ enableVisemeTestKeys: 0
+ visemeTestKeys: 600000000900000071000000770000006500000072000000740000007900000075000000690000006f000000700000005b0000005d0000005c000000
+ laughterKey: 301
+ laughterBlendTarget: 15
+ laughterThreshold: 0.5
+ laughterMultiplier: 1.5
+ smoothAmount: 70
+--- !u!114 &1890348323
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11441082, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1890348319}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: bc30a49f30010eb42a8b59ec685eac57, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ material: {fileID: 2100000, guid: 5290b3a55eaa1b7458665dc2d856c042, type: 2}
+ Textures:
+ - {fileID: 2800000, guid: 46b2920291e9b8c4888ad3fe3f5e5e69, type: 3}
+ - {fileID: 2800000, guid: bea5b996ab6235c4aaa1be9b11aea8c4, type: 3}
+ - {fileID: 2800000, guid: 5563aa34057c347499c480ea33c5d593, type: 3}
+ - {fileID: 2800000, guid: d14bb80824ed25b44a65ddfc7f591e29, type: 3}
+ - {fileID: 2800000, guid: ffbd7db31d3ad6e4a97a2f312babdcb6, type: 3}
+ - {fileID: 2800000, guid: ba0b9f69af91c5f46b490346e5552136, type: 3}
+ - {fileID: 2800000, guid: 5e6531e8f56b42547b8d2ddf7a7363d1, type: 3}
+ - {fileID: 2800000, guid: 31e6326c0bd6143479322c5b4a5fe949, type: 3}
+ - {fileID: 2800000, guid: 9c21cf8c4dffca9418cebd0a578972b4, type: 3}
+ - {fileID: 2800000, guid: 6d47a54f2b89a59459fd7561d360bab2, type: 3}
+ - {fileID: 2800000, guid: 5c06354455999f94ea26114e261dde6d, type: 3}
+ - {fileID: 2800000, guid: 29a06a0eefee1b542a7c286f1689ffab, type: 3}
+ - {fileID: 2800000, guid: ad60c8114191fdf41aa0ea64e132add9, type: 3}
+ - {fileID: 2800000, guid: 5f658e6e48970d340b4491a5fc959251, type: 3}
+ - {fileID: 2800000, guid: 660be1fdb8590b14bab012a991bdeb86, type: 3}
+ smoothAmount: 70
+--- !u!114 &1890348324
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11420510, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1890348319}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e073e338e215b4ae9a7fcdf6891e7955, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ audioSource: {fileID: 0}
+ provider: 1
+ enableAcceleration: 1
+ currentSequence: {fileID: 11400000, guid: 1ccea2acd443f4ad4bb9a9f33fc960c0, type: 2}
+--- !u!82 &1890348325
+AudioSource:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 8298520, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1890348319}
+ m_Enabled: 1
+ serializedVersion: 4
+ OutputAudioMixerGroup: {fileID: 0}
+ m_audioClip: {fileID: 8300000, guid: e21cea670b0f32c428ee862e590a7108, type: 3}
+ m_PlayOnAwake: 1
+ m_Volume: 1
+ m_Pitch: 1
+ Loop: 1
+ Mute: 0
+ Spatialize: 0
+ SpatializePostEffects: 0
+ Priority: 128
+ DopplerLevel: 1
+ MinDistance: 1
+ MaxDistance: 500
+ Pan2D: 0
+ rolloffMode: 0
+ BypassEffects: 0
+ BypassListenerEffects: 0
+ BypassReverbZones: 0
+ rolloffCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ - serializedVersion: 2
+ time: 1
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ panLevelCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ spreadCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ reverbZoneMixCustomCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 2
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+--- !u!1 &2018471940
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 158592, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 2018471941}
+ m_Layer: 0
+ m_Name: CATRigHub001Bone001
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2018471941
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 487160, guid: 560a84bf6071fad48848833c305e784a, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2018471940}
+ m_LocalRotation: {x: -0.000000007749827, y: 0.0000001449285, z: 0.92387956, w: -0.38268346}
+ m_LocalPosition: {x: 0.04366988, y: -0.04479638, z: 0.000000006366835}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 958171742}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2060692846
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 116614, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 2060692847}
+ - component: {fileID: 2060692849}
+ - component: {fileID: 2060692848}
+ m_Layer: 0
+ m_Name: mouth
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2060692847
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 495278, guid: 416995df66fc7834f9a5a4af1ccf1297, type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2060692846}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 179435422}
+ m_RootOrder: 8
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &2060692848
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2347176, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2060692846}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_Materials:
+ - {fileID: 2100000, guid: 5290b3a55eaa1b7458665dc2d856c042, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &2060692849
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3338656, guid: 416995df66fc7834f9a5a4af1ccf1297,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2060692846}
+ m_Mesh: {fileID: 4300016, guid: f82b1e3c015abaa409d91ab8eb628ac4, type: 3}
diff --git a/Assets/Oculus/LipSync/Scenes/LipSync_Demo.unity.meta b/Assets/Oculus/LipSync/Scenes/LipSync_Demo.unity.meta
new file mode 100644
index 0000000..d536071
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scenes/LipSync_Demo.unity.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0a5206cd53b21be4588ef635952929e9
+timeCreated: 1445011372
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scenes/Scripts.meta b/Assets/Oculus/LipSync/Scenes/Scripts.meta
new file mode 100644
index 0000000..4201fb9
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scenes/Scripts.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: a59ddab39a70b984f94af4f1ceb261d2
+folderAsset: yes
+timeCreated: 1445015254
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scenes/Scripts/EnableSwitch.cs b/Assets/Oculus/LipSync/Scenes/Scripts/EnableSwitch.cs
new file mode 100644
index 0000000..76eda90
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scenes/Scripts/EnableSwitch.cs
@@ -0,0 +1,60 @@
+using UnityEngine;
+
+public class EnableSwitch : MonoBehaviour
+{
+ public GameObject[] SwitchTargets;
+
+ ///
+ /// Sets the active GameObject
+ ///
+ /// true , if active was set, false otherwise.
+ /// Target.
+ public bool SetActive(int target) where T : MonoBehaviour
+ {
+ if((target < 0) || (target >= SwitchTargets.Length))
+ return false;
+
+ for (int i = 0; i < SwitchTargets.Length; i++)
+ {
+ SwitchTargets[i].SetActive(false);
+
+ // Disable texture flip or morph target
+ OVRLipSyncContextMorphTarget lipsyncContextMorph =
+ SwitchTargets[i].GetComponent();
+ if (lipsyncContextMorph)
+ lipsyncContextMorph.enabled = false;
+ OVRLipSyncContextTextureFlip lipsyncContextTexture =
+ SwitchTargets[i].GetComponent();
+ if (lipsyncContextTexture)
+ lipsyncContextTexture.enabled = false;
+ }
+
+ SwitchTargets[target].SetActive(true);
+ MonoBehaviour lipsyncContext = SwitchTargets[target].GetComponent();
+ if (lipsyncContext != null)
+ {
+ lipsyncContext.enabled = true;
+ }
+
+ return true;
+ }
+
+ ///
+ /// Sets the active GameObject
+ ///
+ /// true , if active was set, false otherwise.
+ /// Target.
+ public bool SetActive(int target)
+ {
+ if((target < 0) || (target >= SwitchTargets.Length))
+ return false;
+
+ for (int i = 0; i < SwitchTargets.Length; i++)
+ SwitchTargets[i].SetActive(false);
+
+ SwitchTargets[target].SetActive(true);
+
+ return true;
+ }
+}
+
diff --git a/Assets/Oculus/LipSync/Scenes/Scripts/EnableSwitch.cs.meta b/Assets/Oculus/LipSync/Scenes/Scripts/EnableSwitch.cs.meta
new file mode 100644
index 0000000..3722e3a
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scenes/Scripts/EnableSwitch.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 50cd36abe38c57646bcd09be2353f905
+timeCreated: 1445017324
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scenes/Scripts/LipSyncDemo_Control.cs b/Assets/Oculus/LipSync/Scenes/Scripts/LipSyncDemo_Control.cs
new file mode 100644
index 0000000..0567104
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scenes/Scripts/LipSyncDemo_Control.cs
@@ -0,0 +1,88 @@
+/************************************************************************************
+Filename : LipSyncDemo_Control.cs
+Content : LipSync Demo controls
+Created : July 11, 2018
+Copyright : Copyright Facebook Technologies, LLC and its affiliates.
+ All rights reserved.
+
+Licensed under the Oculus Audio SDK License Version 3.3 (the "License");
+you may not use the Oculus Audio SDK except in compliance with the License,
+which is provided at the time of installation or download, or which
+otherwise accompanies this software in either electronic or hard copy form.
+
+You may obtain a copy of the License at
+
+https://developer.oculus.com/licenses/audio-3.3/
+
+Unless required by applicable law or agreed to in writing, the Oculus Audio SDK
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+************************************************************************************/
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class LipSyncDemo_Control : MonoBehaviour {
+
+ [Tooltip("Key used to rotate the demo object up to 45 degrees to the left.")]
+ public KeyCode rotateLeftKey = KeyCode.LeftArrow;
+ [Tooltip("Key used to rotate the demo object up to 45 degrees to the right.")]
+ public KeyCode rotateRightKey = KeyCode.RightArrow;
+ [Tooltip("Key used to reset demo object rotation.")]
+ public KeyCode resetRotationKey = KeyCode.DownArrow;
+
+ private float resetRotation = 180.0f;
+ private float rotationAmount = 20.0f;
+ private float rotationMax = 45.0f;
+
+ // Use this for initialization
+ void Start () {
+ }
+
+ // Update is called once per frame
+ void Update () {
+ if (Input.GetKey(rotateLeftKey))
+ {
+ RotateObject(rotationAmount);
+ }
+ else if (Input.GetKey(rotateRightKey))
+ {
+ RotateObject(-rotationAmount);
+ }
+ else if (Input.GetKey(resetRotationKey))
+ {
+ RotateObject(resetRotation, true);
+ }
+ }
+
+ void RotateObject(float amountDegrees, bool absolute = false)
+ {
+ GameObject target = GameObject.Find("LipSyncMorphTarget_Lips");
+
+ if (target == null)
+ {
+ // Try for other scene object
+ target = GameObject.Find("RobotHead_TextureFlip");
+ }
+
+ if (target)
+ {
+ if (absolute)
+ {
+ float deltaRotate = amountDegrees - target.transform.eulerAngles.y;
+ target.transform.Rotate(Vector3.up * deltaRotate);
+ }
+ else
+ {
+ float deltaRotate = Time.deltaTime * amountDegrees;
+ if (deltaRotate + target.transform.eulerAngles.y >= resetRotation - rotationMax &&
+ deltaRotate + target.transform.eulerAngles.y <= resetRotation + rotationMax)
+ {
+ target.transform.Rotate(Vector3.up * deltaRotate);
+ }
+ }
+ }
+ }
+}
diff --git a/Assets/Oculus/LipSync/Scenes/Scripts/LipSyncDemo_Control.cs.meta b/Assets/Oculus/LipSync/Scenes/Scripts/LipSyncDemo_Control.cs.meta
new file mode 100644
index 0000000..6a16ebc
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scenes/Scripts/LipSyncDemo_Control.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 8a6c32d06b48d244b9c65729404d2afe
+timeCreated: 1531249571
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scenes/Scripts/LipSyncDemo_SetCurrentTarget.cs b/Assets/Oculus/LipSync/Scenes/Scripts/LipSyncDemo_SetCurrentTarget.cs
new file mode 100644
index 0000000..42c8bb9
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scenes/Scripts/LipSyncDemo_SetCurrentTarget.cs
@@ -0,0 +1,149 @@
+/************************************************************************************
+Filename : LipSyncDemo_SetCurrentTarget.cs
+Content : Update LipSync Demo current target
+Created : July 11, 2018
+Copyright : Copyright Facebook Technologies, LLC and its affiliates.
+ All rights reserved.
+
+Licensed under the Oculus Audio SDK License Version 3.3 (the "License");
+you may not use the Oculus Audio SDK except in compliance with the License,
+which is provided at the time of installation or download, or which
+otherwise accompanies this software in either electronic or hard copy form.
+
+You may obtain a copy of the License at
+
+https://developer.oculus.com/licenses/audio-3.3/
+
+Unless required by applicable law or agreed to in writing, the Oculus Audio SDK
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+************************************************************************************/
+using UnityEngine;
+using System.Collections;
+
+public class LipSyncDemo_SetCurrentTarget : MonoBehaviour
+{
+ public EnableSwitch[] SwitchTargets;
+
+ private int targetSet = 0;
+ private int maxTarget = 6;
+
+ // Use this for initialization
+ void Start ()
+ {
+ // Add a listener to the OVRTouchpad for touch events
+ OVRTouchpad.AddListener(LocalTouchEventCallback);
+
+ // Initialize the proper target set
+ targetSet = 0;
+ SwitchTargets[0].SetActive(0);
+ SwitchTargets[1].SetActive(0);
+ }
+
+ // Update is called once per frame
+ // Logic for LipSync_Demo
+ void Update ()
+ {
+ if (Input.GetKeyDown(KeyCode.Alpha1))
+ {
+ targetSet = 0;
+ SetCurrentTarget();
+ }
+ else if (Input.GetKeyDown(KeyCode.Alpha2))
+ {
+ targetSet = 1;
+ SetCurrentTarget();
+ }
+ else if (Input.GetKeyDown(KeyCode.Alpha3))
+ {
+ targetSet = 2;
+ SetCurrentTarget();
+ }
+ else if (Input.GetKeyDown(KeyCode.Alpha4))
+ {
+ targetSet = 3;
+ SetCurrentTarget();
+ }
+ else if (Input.GetKeyDown(KeyCode.Alpha5))
+ {
+ targetSet = 4;
+ SetCurrentTarget();
+ }
+ else if (Input.GetKeyDown(KeyCode.Alpha6))
+ {
+ targetSet = 5;
+ SetCurrentTarget();
+ }
+
+ // Close app
+ if(Input.GetKeyDown (KeyCode.Escape))
+ Application.Quit();
+ }
+
+ ///
+ /// Sets the current target.
+ ///
+ void SetCurrentTarget()
+ {
+ switch(targetSet)
+ {
+ case(0):
+ SwitchTargets[0].SetActive(0);
+ SwitchTargets[1].SetActive(0);
+ break;
+ case(1):
+ SwitchTargets[0].SetActive(0);
+ SwitchTargets[1].SetActive(1);
+ break;
+ case(2):
+ SwitchTargets[0].SetActive(1);
+ SwitchTargets[1].SetActive(2);
+ break;
+ case(3):
+ SwitchTargets[0].SetActive(1);
+ SwitchTargets[1].SetActive(3);
+ break;
+ case(4):
+ SwitchTargets[0].SetActive(2);
+ SwitchTargets[1].SetActive(4);
+ break;
+ case(5):
+ SwitchTargets[0].SetActive(2);
+ SwitchTargets[1].SetActive(5);
+ break;
+ }
+ OVRLipSyncDebugConsole.Clear();
+ }
+
+ ///
+ /// Local touch event callback.
+ ///
+ /// Touch event.
+ void LocalTouchEventCallback(OVRTouchpad.TouchEvent touchEvent)
+ {
+ switch(touchEvent)
+ {
+ case(OVRTouchpad.TouchEvent.Left):
+
+ targetSet--;
+ if(targetSet < 0)
+ targetSet = maxTarget - 1;
+
+ SetCurrentTarget();
+
+ break;
+
+ case(OVRTouchpad.TouchEvent.Right):
+
+ targetSet++;
+ if(targetSet >= maxTarget)
+ targetSet = 0;
+
+ SetCurrentTarget();
+
+ break;
+ }
+ }
+}
diff --git a/Assets/Oculus/LipSync/Scenes/Scripts/LipSyncDemo_SetCurrentTarget.cs.meta b/Assets/Oculus/LipSync/Scenes/Scripts/LipSyncDemo_SetCurrentTarget.cs.meta
new file mode 100644
index 0000000..d072f31
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scenes/Scripts/LipSyncDemo_SetCurrentTarget.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c62f9b5ef85d22f449e72c67c610059d
+timeCreated: 1445018007
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scripts.meta b/Assets/Oculus/LipSync/Scripts.meta
new file mode 100644
index 0000000..a5e3744
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: a96f219c252e0cc4eb074d5b7bbda9b3
+folderAsset: yes
+timeCreated: 1437169844
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scripts/Helpers.meta b/Assets/Oculus/LipSync/Scripts/Helpers.meta
new file mode 100644
index 0000000..48b44ff
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/Helpers.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 27d84f95a4766db44a26aea09cc67373
+folderAsset: yes
+timeCreated: 1444949045
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scripts/Helpers/OVRLipSyncDebugConsole.cs b/Assets/Oculus/LipSync/Scripts/Helpers/OVRLipSyncDebugConsole.cs
new file mode 100644
index 0000000..f1bb3b0
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/Helpers/OVRLipSyncDebugConsole.cs
@@ -0,0 +1,224 @@
+/************************************************************************************
+Filename : OVRLipSyncDebugConsole.cs
+Content : Write to a text string, used by UI.Text
+Created : May 22, 2015
+Copyright : Copyright Facebook Technologies, LLC and its affiliates.
+ All rights reserved.
+
+Licensed under the Oculus Audio SDK License Version 3.3 (the "License");
+you may not use the Oculus Audio SDK except in compliance with the License,
+which is provided at the time of installation or download, or which
+otherwise accompanies this software in either electronic or hard copy form.
+
+You may obtain a copy of the License at
+
+https://developer.oculus.com/licenses/audio-3.3/
+
+Unless required by applicable law or agreed to in writing, the Oculus Audio SDK
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+************************************************************************************/
+using UnityEngine;
+using UnityEngine.UI;
+using System.Collections;
+
+public class OVRLipSyncDebugConsole : MonoBehaviour
+{
+ public ArrayList messages = new ArrayList();
+ public int maxMessages = 15; // The max number of messages displayed
+ public Text textMsg; // text string to display
+
+ // Our instance to allow this script to be called without a direct connection.
+ private static OVRLipSyncDebugConsole s_Instance = null;
+
+ // Clear timeout
+ private bool clearTimeoutOn = false;
+ private float clearTimeout = 0.0f;
+
+ ///
+ /// Gets the instance.
+ ///
+ /// The instance.
+ public static OVRLipSyncDebugConsole instance
+ {
+ get
+ {
+ if (s_Instance == null)
+ {
+ s_Instance = FindObjectOfType(typeof(OVRLipSyncDebugConsole)) as OVRLipSyncDebugConsole;
+
+ if (s_Instance == null)
+ {
+ GameObject console = new GameObject();
+ console.AddComponent();
+ console.name = "OVRLipSyncDebugConsole";
+ s_Instance = FindObjectOfType(typeof(OVRLipSyncDebugConsole)) as OVRLipSyncDebugConsole;
+ }
+ }
+
+ return s_Instance;
+ }
+ }
+
+ ///
+ /// Awake this instance.
+ ///
+ void Awake()
+ {
+ s_Instance = this;
+ Init();
+
+ }
+
+ ///
+ /// Update this instance.
+ ///
+ void Update()
+ {
+ if(clearTimeoutOn == true)
+ {
+ clearTimeout -= Time.deltaTime;
+ if(clearTimeout < 0.0f)
+ {
+ Clear();
+ clearTimeout = 0.0f;
+ clearTimeoutOn = false;
+ }
+ }
+ }
+
+ ///
+ /// Init this instance.
+ ///
+ public void Init()
+ {
+ if(textMsg == null)
+ {
+ Debug.LogWarning("DebugConsole Init WARNING::UI text not set. Will not be able to display anything.");
+ }
+
+ Clear();
+ }
+
+
+ //+++++++++ INTERFACE FUNCTIONS ++++++++++++++++++++++++++++++++
+
+ ///
+ /// Log the specified message.
+ ///
+ /// Message.
+ public static void Log(string message)
+ {
+ OVRLipSyncDebugConsole.instance.AddMessage(message, Color.white);
+ }
+
+ ///
+ /// Log the specified message and color.
+ ///
+ /// Message.
+ /// Color.
+ public static void Log(string message, Color color)
+ {
+ OVRLipSyncDebugConsole.instance.AddMessage(message, color);
+ }
+
+ ///
+ /// Clear this instance.
+ ///
+ public static void Clear()
+ {
+ OVRLipSyncDebugConsole.instance.ClearMessages();
+ }
+
+ ///
+ /// Calls clear after a certain time.
+ ///
+ /// Time to clear.
+ public static void ClearTimeout(float timeToClear)
+ {
+ OVRLipSyncDebugConsole.instance.SetClearTimeout(timeToClear);
+ }
+
+ //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+
+ ///
+ /// Adds the message.
+ ///
+ /// Message.
+ /// Color.
+ public void AddMessage(string message, Color color)
+ {
+ messages.Add(message);
+
+ if(textMsg != null)
+ textMsg.color = color;
+
+ Display();
+ }
+
+ ///
+ /// Clears the messages.
+ ///
+ public void ClearMessages()
+ {
+ messages.Clear();
+ Display();
+ }
+
+ ///
+ /// Sets the clear timeout.
+ ///
+ /// Timeout.
+ public void SetClearTimeout(float timeout)
+ {
+ clearTimeout = timeout;
+ clearTimeoutOn = true;
+ }
+
+ ///
+ // Prunes the array to fit within the maxMessages limit
+ ///
+ void Prune()
+ {
+ int diff;
+ if (messages.Count > maxMessages)
+ {
+ if (messages.Count <= 0)
+ {
+ diff = 0;
+ }
+ else
+ {
+ diff = messages.Count - maxMessages;
+ }
+ messages.RemoveRange(0, (int)diff);
+ }
+ }
+
+ ///
+ /// Display this instance.
+ ///
+ void Display()
+ {
+ if (messages.Count > maxMessages)
+ {
+ Prune();
+ }
+
+ if(textMsg != null)
+ {
+ textMsg.text = ""; // Clear text out
+ int x = 0;
+
+ while (x < messages.Count)
+ {
+ textMsg.text += (string)messages[x];
+ textMsg.text +='\n';
+ x += 1;
+ }
+ }
+ }
+}
diff --git a/Assets/Oculus/LipSync/Scripts/Helpers/OVRLipSyncDebugConsole.cs.meta b/Assets/Oculus/LipSync/Scripts/Helpers/OVRLipSyncDebugConsole.cs.meta
new file mode 100644
index 0000000..4d0b390
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/Helpers/OVRLipSyncDebugConsole.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c60ad94815c68aa41a786306cd588495
+timeCreated: 1439845885
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scripts/Helpers/OVRNamedArrayAttribute.cs b/Assets/Oculus/LipSync/Scripts/Helpers/OVRNamedArrayAttribute.cs
new file mode 100644
index 0000000..3d6605e
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/Helpers/OVRNamedArrayAttribute.cs
@@ -0,0 +1,29 @@
+/************************************************************************************
+Filename : OVRNamedArrayAttribute.cs
+Content : Adds support for a named array attribute in the editor
+Created : May 17th, 2018
+Copyright : Copyright Facebook Technologies, LLC and its affiliates.
+ All rights reserved.
+
+Licensed under the Oculus Audio SDK License Version 3.3 (the "License");
+you may not use the Oculus Audio SDK except in compliance with the License,
+which is provided at the time of installation or download, or which
+otherwise accompanies this software in either electronic or hard copy form.
+
+You may obtain a copy of the License at
+
+https://developer.oculus.com/licenses/audio-3.3/
+
+Unless required by applicable law or agreed to in writing, the Oculus Audio SDK
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+************************************************************************************/
+using UnityEngine;
+
+// Adds support for a named array attribute in the editor
+public class OVRNamedArrayAttribute : PropertyAttribute {
+ public readonly string[] names;
+ public OVRNamedArrayAttribute( string[] names ) { this.names = names; }
+}
diff --git a/Assets/Oculus/LipSync/Scripts/Helpers/OVRNamedArrayAttribute.cs.meta b/Assets/Oculus/LipSync/Scripts/Helpers/OVRNamedArrayAttribute.cs.meta
new file mode 100644
index 0000000..3ba4334
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/Helpers/OVRNamedArrayAttribute.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 7537accd8e2c6024c860b20e3e7e3424
+timeCreated: 1534993516
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scripts/Helpers/OVRTouchpad.cs b/Assets/Oculus/LipSync/Scripts/Helpers/OVRTouchpad.cs
new file mode 100644
index 0000000..715f8aa
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/Helpers/OVRTouchpad.cs
@@ -0,0 +1,201 @@
+/************************************************************************************
+Filename : OVRTouchpad.cs
+Content : Interface to touchpad
+Created : November 13, 2013
+Copyright : Copyright Facebook Technologies, LLC and its affiliates.
+ All rights reserved.
+
+Licensed under the Oculus Audio SDK License Version 3.3 (the "License");
+you may not use the Oculus Audio SDK except in compliance with the License,
+which is provided at the time of installation or download, or which
+otherwise accompanies this software in either electronic or hard copy form.
+
+You may obtain a copy of the License at
+
+https://developer.oculus.com/licenses/audio-3.3/
+
+Unless required by applicable law or agreed to in writing, the Oculus Audio SDK
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+************************************************************************************/
+using UnityEngine;
+using System;
+
+//-------------------------------------------------------------------------------------
+// ***** OVRTouchpad
+//
+// OVRTouchpad is an interface class to a touchpad.
+//
+public static class OVRTouchpad
+{
+ //-------------------------
+ // Input enums
+ public enum TouchEvent { SingleTap, DoubleTap, Left, Right, Up, Down };
+
+ // mouse
+ static Vector3 moveAmountMouse;
+ static float minMovMagnitudeMouse = 25.0f;
+
+ public delegate void OVRTouchpadCallback(TouchEvent arg);
+ static public Delegate touchPadCallbacks = null;
+
+ //Disable the unused variable warning
+#pragma warning disable 0414
+
+ //Ensures that the TouchpadHelper will be created automatically upon start of the game.
+ static private OVRTouchpadHelper touchpadHelper =
+ ( new GameObject("OVRTouchpadHelper") ).AddComponent< OVRTouchpadHelper >();
+
+#pragma warning restore 0414
+
+ // We will call this to create the TouchpadHelper class. This will
+ // add the Touchpad game object into the world and we can call into
+ // TouchEvent static functions to hook delegates into for touch capture
+ static public void Create()
+ {
+ // Does nothing but call constructor to add game object into scene
+ }
+
+ // Update
+ static public void Update()
+ {
+ // MOUSE INPUT
+
+ if(Input.GetMouseButtonDown(0))
+ {
+ moveAmountMouse = Input.mousePosition;
+ }
+ else if(Input.GetMouseButtonUp(0))
+ {
+ moveAmountMouse -= Input.mousePosition;
+ HandleInputMouse(ref moveAmountMouse);
+ }
+ }
+
+ // OnDisable
+ static public void OnDisable()
+ {
+ }
+
+ // HandleInputMouse
+ static void HandleInputMouse(ref Vector3 move)
+ {
+ if (touchPadCallbacks == null)
+ {
+ return;
+ }
+ OVRTouchpadCallback callback = touchPadCallbacks as OVRTouchpadCallback;
+
+ if ( move.magnitude < minMovMagnitudeMouse)
+ {
+ callback(TouchEvent.SingleTap);
+ }
+ else
+ {
+ move.Normalize();
+
+ // Left/Right
+ if (Mathf.Abs(move.x) > Mathf.Abs(move.y))
+ {
+ if (move.x > 0.0f)
+ callback(TouchEvent.Left);
+ else
+ callback(TouchEvent.Right);
+ }
+ // Up/Down
+ else
+ {
+ if (move.y > 0.0f)
+ callback(TouchEvent.Down);
+ else
+ callback(TouchEvent.Up);
+ }
+ }
+ }
+
+ static public void AddListener(OVRTouchpadCallback handler)
+ {
+ touchPadCallbacks = (OVRTouchpadCallback)touchPadCallbacks + handler;
+ }
+}
+
+//-------------------------------------------------------------------------------------
+// ***** OVRTouchpadHelper
+//
+// This singleton class gets created and stays resident in the application. It is used to
+// trap the touchpad values, which get broadcast to any listener on the "Touchpad" channel.
+//
+// This class also demontrates how to make calls from any class that needs these events by
+// setting up a listener to "Touchpad" channel.
+public sealed class OVRTouchpadHelper : MonoBehaviour
+{
+ void Awake ()
+ {
+ DontDestroyOnLoad(gameObject);
+ }
+
+ void Start ()
+ {
+ // Add a listener to the OVRTouchpad for testing
+ OVRTouchpad.AddListener(LocalTouchEventCallback);
+ }
+
+
+ void Update ()
+ {
+ OVRTouchpad.Update();
+ }
+
+
+ public void OnDisable()
+ {
+ OVRTouchpad.OnDisable();
+ }
+
+ // LocalTouchEventCallback
+ void LocalTouchEventCallback(OVRTouchpad.TouchEvent touchEvent)
+ {
+ switch(touchEvent)
+ {
+ case(OVRTouchpad.TouchEvent.SingleTap):
+// OVRLipSyncDebugConsole.Clear();
+// OVRLipSyncDebugConsole.ClearTimeout(1.5f);
+// OVRLipSyncDebugConsole.Log("TP-SINGLE TAP");
+ break;
+
+ case(OVRTouchpad.TouchEvent.DoubleTap):
+// OVRLipSyncDebugConsole.Clear();
+// OVRLipSyncDebugConsole.ClearTimeout(1.5f);
+// OVRLipSyncDebugConsole.Log("TP-DOUBLE TAP");
+ break;
+
+ case(OVRTouchpad.TouchEvent.Left):
+// OVRLipSyncDebugConsole.Clear();
+// OVRLipSyncDebugConsole.ClearTimeout(1.5f);
+// OVRLipSyncDebugConsole.Log("TP-SWIPE LEFT");
+ break;
+
+ case(OVRTouchpad.TouchEvent.Right):
+// OVRLipSyncDebugConsole.Clear();
+// OVRLipSyncDebugConsole.ClearTimeout(1.5f);
+// OVRLipSyncDebugConsole.Log("TP-SWIPE RIGHT");
+ break;
+
+ case(OVRTouchpad.TouchEvent.Up):
+// OVRLipSyncDebugConsole.Clear();
+// OVRLipSyncDebugConsole.ClearTimeout(1.5f);
+// OVRLipSyncDebugConsole.Log("TP-SWIPE UP");
+ break;
+
+ case(OVRTouchpad.TouchEvent.Down):
+// OVRLipSyncDebugConsole.Clear();
+// OVRLipSyncDebugConsole.ClearTimeout(1.5f);
+// OVRLipSyncDebugConsole.Log("TP-SWIPE DOWN");
+ break;
+ }
+ }
+
+}
+
diff --git a/Assets/Oculus/LipSync/Scripts/Helpers/OVRTouchpad.cs.meta b/Assets/Oculus/LipSync/Scripts/Helpers/OVRTouchpad.cs.meta
new file mode 100644
index 0000000..da9c75d
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/Helpers/OVRTouchpad.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: edde1cb2a78471f409fce5084e6c720c
+timeCreated: 1528830158
+licenseType: Store
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scripts/OVRLipSync.cs b/Assets/Oculus/LipSync/Scripts/OVRLipSync.cs
new file mode 100644
index 0000000..54e8373
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/OVRLipSync.cs
@@ -0,0 +1,377 @@
+/************************************************************************************
+Filename : OVRLipSync.cs
+Content : Interface to Oculus Lip Sync engine
+Created : August 4th, 2015
+Copyright : Copyright Facebook Technologies, LLC and its affiliates.
+ All rights reserved.
+
+Licensed under the Oculus Audio SDK License Version 3.3 (the "License");
+you may not use the Oculus Audio SDK except in compliance with the License,
+which is provided at the time of installation or download, or which
+otherwise accompanies this software in either electronic or hard copy form.
+
+You may obtain a copy of the License at
+
+https://developer.oculus.com/licenses/audio-3.3/
+
+Unless required by applicable law or agreed to in writing, the Oculus Audio SDK
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+************************************************************************************/
+using UnityEngine;
+using System;
+using System.Runtime.InteropServices;
+
+//-------------------------------------------------------------------------------------
+// ***** OVRLipSync
+//
+///
+/// OVRLipSync interfaces into the Oculus lip sync engine. This component should be added
+/// into the scene once.
+///
+///
+public class OVRLipSync : MonoBehaviour
+{
+ // Error codes that may return from Lip Sync engine
+ public enum Result
+ {
+ Success = 0,
+ Unknown = -2200, //< An unknown error has occurred
+ CannotCreateContext = -2201, //< Unable to create a context
+ InvalidParam = -2202, //< An invalid parameter, e.g. NULL pointer or out of range
+ BadSampleRate = -2203, //< An unsupported sample rate was declared
+ MissingDLL = -2204, //< The DLL or shared library could not be found
+ BadVersion = -2205, //< Mismatched versions between header and libs
+ UndefinedFunction = -2206 //< An undefined function
+ };
+
+ // Audio buffer data type
+ public enum AudioDataType
+ {
+ // Signed 16-bit integer mono audio stream
+ S16_Mono,
+ // Signed 16-bit integer stereo audio stream
+ S16_Stereo,
+ // Signed 32-bit float mono data type
+ F32_Mono,
+ // Signed 32-bit float stereo data type
+ F32_Stereo
+ };
+
+ // Various visemes
+ public enum Viseme
+ {
+ sil,
+ PP,
+ FF,
+ TH,
+ DD,
+ kk,
+ CH,
+ SS,
+ nn,
+ RR,
+ aa,
+ E,
+ ih,
+ oh,
+ ou
+ };
+
+ public static readonly int VisemeCount = Enum.GetNames(typeof(Viseme)).Length;
+
+ // Enum for sending lip-sync engine specific signals
+ public enum Signals
+ {
+ VisemeOn,
+ VisemeOff,
+ VisemeAmount,
+ VisemeSmoothing,
+ LaughterAmount
+ };
+
+ public static readonly int SignalCount = Enum.GetNames(typeof(Signals)).Length;
+
+ // Enum for provider context to create
+ public enum ContextProviders
+ {
+ Original,
+ Enhanced,
+ Enhanced_with_Laughter,
+ };
+
+ /// NOTE: Opaque typedef for lip-sync context is an unsigned int (uint)
+
+ /// Current phoneme frame results
+ [System.Serializable]
+ public class Frame
+ {
+ public void CopyInput(Frame input)
+ {
+ frameNumber = input.frameNumber;
+ frameDelay = input.frameDelay;
+ input.Visemes.CopyTo(Visemes, 0);
+ laughterScore = input.laughterScore;
+ }
+
+ public void Reset()
+ {
+ frameNumber = 0;
+ frameDelay = 0;
+ Array.Clear(Visemes, 0, VisemeCount);
+ laughterScore = 0;
+ }
+
+ public int frameNumber; // count from start of recognition
+ public int frameDelay; // in ms
+ public float[] Visemes = new float[VisemeCount]; // Array of floats for viseme frame. Size of Viseme Count, above
+ public float laughterScore; // probability of laughter presence.
+ };
+
+ // * * * * * * * * * * * * *
+ // Import functions
+ public const string strOVRLS = "OVRLipSync";
+ [DllImport(strOVRLS)]
+ private static extern int ovrLipSyncDll_Initialize(int samplerate, int buffersize);
+ [DllImport(strOVRLS)]
+ private static extern void ovrLipSyncDll_Shutdown();
+ [DllImport(strOVRLS)]
+ private static extern IntPtr ovrLipSyncDll_GetVersion(ref int Major,
+ ref int Minor,
+ ref int Patch);
+ [DllImport(strOVRLS)]
+ private static extern int ovrLipSyncDll_CreateContextEx(ref uint context,
+ ContextProviders provider,
+ int sampleRate,
+ bool enableAcceleration);
+ [DllImport(strOVRLS)]
+ private static extern int ovrLipSyncDll_DestroyContext(uint context);
+
+
+ [DllImport(strOVRLS)]
+ private static extern int ovrLipSyncDll_ResetContext(uint context);
+ [DllImport(strOVRLS)]
+ private static extern int ovrLipSyncDll_SendSignal(uint context,
+ Signals signal,
+ int arg1, int arg2);
+ [DllImport(strOVRLS)]
+ private static extern int ovrLipSyncDll_ProcessFrame(
+ uint context,
+ float[] audioBuffer,
+ ref int frameNumber,
+ ref int frameDelay,
+ float[] visemes,
+ int visemeCount);
+
+ [DllImport(strOVRLS)]
+ private static extern int ovrLipSyncDll_ProcessFrameInterleaved(
+ uint context,
+ float[] audioBuffer,
+ ref int frameNumber,
+ ref int frameDelay,
+ float[] visemes,
+ int visemeCount);
+
+ [DllImport(strOVRLS)]
+ private static extern int ovrLipSyncDll_ProcessFrameEx(
+ uint context,
+ float[] audioBuffer,
+ uint bufferSize,
+ AudioDataType dataType,
+ ref int frameNumber,
+ ref int frameDelay,
+ float[] visemes,
+ int visemeCount,
+ ref float laughterScore,
+ float[] laughterCategories,
+ int laughterCategoriesLength);
+
+ // * * * * * * * * * * * * *
+ // Public members
+
+ // * * * * * * * * * * * * *
+ // Static members
+ private static Result sInitialized = Result.Unknown;
+
+ // interface through this static member.
+ public static OVRLipSync sInstance = null;
+
+
+ // * * * * * * * * * * * * *
+ // MonoBehaviour overrides
+
+ ///
+ /// Awake this instance.
+ ///
+ void Awake()
+ {
+ // We can only have one instance of OVRLipSync in a scene (use this for local property query)
+ if (sInstance == null)
+ {
+ sInstance = this;
+ }
+ else
+ {
+ Debug.LogWarning(System.String.Format("OVRLipSync Awake: Only one instance of OVRPLipSync can exist in the scene."));
+ return;
+ }
+
+ if (IsInitialized() != Result.Success)
+ {
+ sInitialized = Initialize();
+
+ if (sInitialized != Result.Success)
+ {
+ Debug.LogWarning(System.String.Format
+ ("OvrLipSync Awake: Failed to init Speech Rec library"));
+ }
+ }
+
+ // Important: Use the touchpad mechanism for input, call Create on the OVRTouchpad helper class
+ OVRTouchpad.Create();
+
+ }
+
+ ///
+ /// Raises the destroy event.
+ ///
+ void OnDestroy()
+ {
+ if (sInstance != this)
+ {
+ Debug.LogWarning(
+ "OVRLipSync OnDestroy: This is not the correct OVRLipSync instance.");
+ return;
+ }
+
+ // Do not shut down at this time
+ // ovrLipSyncDll_Shutdown();
+ // sInitialized = (int)Result.Unknown;
+ }
+
+
+ // * * * * * * * * * * * * *
+ // Public Functions
+
+ public static Result Initialize()
+ {
+ int sampleRate;
+ int bufferSize;
+ int numbuf;
+
+ // Get the current sample rate
+ sampleRate = AudioSettings.outputSampleRate;
+ // Get the current buffer size and number of buffers
+ AudioSettings.GetDSPBufferSize(out bufferSize, out numbuf);
+
+ String str = System.String.Format
+ ("OvrLipSync Awake: Queried SampleRate: {0:F0} BufferSize: {1:F0}", sampleRate, bufferSize);
+ Debug.LogWarning(str);
+
+ sInitialized = (Result)ovrLipSyncDll_Initialize(sampleRate, bufferSize);
+ return sInitialized;
+ }
+
+ public static Result Initialize(int sampleRate, int bufferSize)
+ {
+ String str = System.String.Format
+ ("OvrLipSync Awake: Queried SampleRate: {0:F0} BufferSize: {1:F0}", sampleRate, bufferSize);
+ Debug.LogWarning(str);
+
+ sInitialized = (Result)ovrLipSyncDll_Initialize(sampleRate, bufferSize);
+ return sInitialized;
+ }
+
+ public static void Shutdown()
+ {
+ ovrLipSyncDll_Shutdown();
+ sInitialized = Result.Unknown;
+ }
+
+ ///
+ /// Determines if is initialized.
+ ///
+ /// true if is initialized; otherwise, false .
+ public static Result IsInitialized()
+ {
+ return sInitialized;
+ }
+
+ ///
+ /// Creates a lip-sync context.
+ ///
+ /// error code
+ /// Context.
+ /// Provider.
+ /// Enable DSP Acceleration.
+ public static Result CreateContext(
+ ref uint context,
+ ContextProviders provider,
+ int sampleRate = 0,
+ bool enableAcceleration = false)
+ {
+ if (IsInitialized() != Result.Success && Initialize() != Result.Success)
+ return Result.CannotCreateContext;
+
+ return (Result)ovrLipSyncDll_CreateContextEx(ref context, provider, sampleRate, enableAcceleration);
+ }
+
+ ///
+ /// Destroy a lip-sync context.
+ ///
+ /// The context.
+ /// Context.
+ public static Result DestroyContext(uint context)
+ {
+ if (IsInitialized() != Result.Success)
+ return Result.Unknown;
+
+ return (Result)ovrLipSyncDll_DestroyContext(context);
+ }
+
+ ///
+ /// Resets the context.
+ ///
+ /// error code
+ /// Context.
+ public static Result ResetContext(uint context)
+ {
+ if (IsInitialized() != Result.Success)
+ return Result.Unknown;
+
+ return (Result)ovrLipSyncDll_ResetContext(context);
+ }
+
+ ///
+ /// Sends a signal to the lip-sync engine.
+ ///
+ /// error code
+ /// Context.
+ /// Signal.
+ /// Arg1.
+ /// Arg2.
+ public static Result SendSignal(uint context, Signals signal, int arg1, int arg2)
+ {
+ if (IsInitialized() != Result.Success)
+ return Result.Unknown;
+
+ return (Result)ovrLipSyncDll_SendSignal(context, signal, arg1, arg2);
+ }
+
+ public static Result ProcessFrame(
+ uint context, float[] audioBuffer, Frame frame, AudioDataType dataType = AudioDataType.F32_Stereo)
+ {
+ if (IsInitialized() != Result.Success)
+ return Result.Unknown;
+
+ return (Result)ovrLipSyncDll_ProcessFrameEx(context, audioBuffer, 0, dataType,
+ ref frame.frameNumber, ref frame.frameDelay,
+ frame.Visemes, frame.Visemes.Length,
+ ref frame.laughterScore,
+ null, 0
+ );
+
+ }
+}
diff --git a/Assets/Oculus/LipSync/Scripts/OVRLipSync.cs.meta b/Assets/Oculus/LipSync/Scripts/OVRLipSync.cs.meta
new file mode 100644
index 0000000..8ae02a6
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/OVRLipSync.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 82aa5cb7a870de440baadff9083be41c
+timeCreated: 1444935432
+licenseType: Store
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scripts/OVRLipSyncContext.cs b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContext.cs
new file mode 100644
index 0000000..8d80c13
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContext.cs
@@ -0,0 +1,341 @@
+/************************************************************************************
+Filename : OVRLipSyncContext.cs
+Content : Interface to Oculus Lip-Sync engine
+Created : August 6th, 2015
+Copyright : Copyright Facebook Technologies, LLC and its affiliates.
+ All rights reserved.
+
+Licensed under the Oculus Audio SDK License Version 3.3 (the "License");
+you may not use the Oculus Audio SDK except in compliance with the License,
+which is provided at the time of installation or download, or which
+otherwise accompanies this software in either electronic or hard copy form.
+
+You may obtain a copy of the License at
+
+https://developer.oculus.com/licenses/audio-3.3/
+
+Unless required by applicable law or agreed to in writing, the Oculus Audio SDK
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+************************************************************************************/
+using UnityEngine;
+
+[RequireComponent(typeof(AudioSource))]
+
+//-------------------------------------------------------------------------------------
+// ***** OVRLipSyncContext
+//
+///
+/// OVRLipSyncContext interfaces into the Oculus phoneme recognizer.
+/// This component should be added into the scene once for each Audio Source.
+///
+///
+public class OVRLipSyncContext : OVRLipSyncContextBase
+{
+ // * * * * * * * * * * * * *
+ // Public members
+
+
+ [Tooltip("Allow capturing of keyboard input to control operation.")]
+ public bool enableKeyboardInput = false;
+ [Tooltip("Register a mouse/touch callback to control loopback and gain (requires script restart).")]
+ public bool enableTouchInput = false;
+ [Tooltip("Play input audio back through audio output.")]
+ public bool audioLoopback = false;
+ [Tooltip("Key to toggle audio loopback.")]
+ public KeyCode loopbackKey = KeyCode.L;
+ [Tooltip("Show viseme scores in an OVRLipSyncDebugConsole display.")]
+ public bool showVisemes = false;
+ [Tooltip("Key to toggle viseme score display.")]
+ public KeyCode debugVisemesKey = KeyCode.D;
+ [Tooltip("Skip data from the Audio Source. Use if you intend to pass audio data in manually.")]
+ public bool skipAudioSource = false;
+ [Tooltip("Adjust the linear audio gain multiplier before processing lipsync")]
+ public float gain = 1.0f;
+
+ private bool hasDebugConsole = false;
+
+ public KeyCode debugLaughterKey = KeyCode.H;
+ public bool showLaughter = false;
+ public float laughterScore = 0.0f;
+
+ // * * * * * * * * * * * * *
+ // Private members
+
+ ///
+ /// Start this instance.
+ /// Note: make sure to always have a Start function for classes that have editor scripts.
+ ///
+ void Start()
+ {
+ // Add a listener to the OVRTouchpad for touch events
+ if (enableTouchInput)
+ {
+ OVRTouchpad.AddListener(LocalTouchEventCallback);
+ }
+
+ // Find console
+ OVRLipSyncDebugConsole[] consoles = FindObjectsOfType();
+ if (consoles.Length > 0)
+ {
+ hasDebugConsole = consoles[0];
+ }
+ }
+
+ ///
+ /// Handle keyboard input
+ ///
+ void HandleKeyboard()
+ {
+ // Turn loopback on/off
+ if (Input.GetKeyDown(loopbackKey))
+ {
+ ToggleAudioLoopback();
+ }
+ else if (Input.GetKeyDown(debugVisemesKey))
+ {
+ showVisemes = !showVisemes;
+
+ if (showVisemes)
+ {
+ if (hasDebugConsole)
+ {
+ Debug.Log("DEBUG SHOW VISEMES: ENABLED");
+ }
+ else
+ {
+ Debug.LogWarning("Warning: No OVRLipSyncDebugConsole in the scene!");
+ showVisemes = false;
+ }
+ }
+ else
+ {
+ if (hasDebugConsole)
+ {
+ OVRLipSyncDebugConsole.Clear();
+ }
+ Debug.Log("DEBUG SHOW VISEMES: DISABLED");
+ }
+ }
+ else if (Input.GetKeyDown(debugLaughterKey))
+ {
+ showLaughter = !showLaughter;
+
+ if (showLaughter)
+ {
+ if (hasDebugConsole)
+ {
+ Debug.Log("DEBUG SHOW LAUGHTER: ENABLED");
+ }
+ else
+ {
+ Debug.LogWarning("Warning: No OVRLipSyncDebugConsole in the scene!");
+ showLaughter = false;
+ }
+ }
+ else
+ {
+ if (hasDebugConsole)
+ {
+ OVRLipSyncDebugConsole.Clear();
+ }
+ Debug.Log("DEBUG SHOW LAUGHTER: DISABLED");
+ }
+ }
+ else if (Input.GetKeyDown(KeyCode.LeftArrow))
+ {
+ gain -= 1.0f;
+ if (gain < 1.0f) gain = 1.0f;
+
+ string g = "LINEAR GAIN: ";
+ g += gain;
+
+ if (hasDebugConsole)
+ {
+ OVRLipSyncDebugConsole.Clear();
+ OVRLipSyncDebugConsole.Log(g);
+ OVRLipSyncDebugConsole.ClearTimeout(1.5f);
+ }
+ }
+ else if (Input.GetKeyDown(KeyCode.RightArrow))
+ {
+ gain += 1.0f;
+ if (gain > 15.0f)
+ gain = 15.0f;
+
+ string g = "LINEAR GAIN: ";
+ g += gain;
+
+ if (hasDebugConsole)
+ {
+ OVRLipSyncDebugConsole.Clear();
+ OVRLipSyncDebugConsole.Log(g);
+ OVRLipSyncDebugConsole.ClearTimeout(1.5f);
+ }
+ }
+ }
+
+ ///
+ /// Run processes that need to be updated in our game thread
+ ///
+ void Update()
+ {
+ if (enableKeyboardInput)
+ {
+ HandleKeyboard();
+ }
+ laughterScore = this.Frame.laughterScore;
+ DebugShowVisemesAndLaughter();
+ }
+
+
+ ///
+ /// Pass an audio sample to the lip sync module for computation
+ ///
+ /// Data.
+ /// Channels.
+ public void ProcessAudioSamples(float[] data, int channels)
+ {
+ // Do not process if we are not initialized, or if there is no
+ // audio source attached to game object
+ if ((OVRLipSync.IsInitialized() != OVRLipSync.Result.Success) || audioSource == null)
+ return;
+
+ // Increase the gain of the input
+ for (int i = 0; i < data.Length; ++i)
+ data[i] = data[i] * gain;
+
+ // Send data into Phoneme context for processing (if context is not 0)
+ lock (this)
+ {
+ if (Context != 0)
+ {
+
+ OVRLipSync.Frame frame = this.Frame;
+ OVRLipSync.ProcessFrame(Context, data, frame);
+ }
+ }
+
+ // Turn off output (so that we don't get feedback from mics too close to speakers)
+ if (!audioLoopback)
+ {
+ for (int i = 0; i < data.Length; ++i)
+ data[i] = data[i] * 0.0f;
+ }
+ }
+
+ ///
+ /// Raises the audio filter read event.
+ ///
+ /// Data.
+ /// Channels.
+ void OnAudioFilterRead(float[] data, int channels)
+ {
+ if (!skipAudioSource)
+ {
+ ProcessAudioSamples(data, channels);
+ }
+ }
+
+ ///
+ /// Print the visemes and laughter score to game window
+ ///
+ void DebugShowVisemesAndLaughter()
+ {
+ if (hasDebugConsole)
+ {
+ string seq = "";
+ if (showLaughter)
+ {
+ seq += "Laughter:";
+ int count = (int)(50.0f * this.Frame.laughterScore);
+ for (int c = 0; c < count; c++)
+ seq += "*";
+ seq += "\n";
+ }
+ if (showVisemes)
+ {
+ for (int i = 0; i < this.Frame.Visemes.Length; i++)
+ {
+ seq += ((OVRLipSync.Viseme)i).ToString();
+ seq += ":";
+
+ int count = (int)(50.0f * this.Frame.Visemes[i]);
+ for (int c = 0; c < count; c++)
+ seq += "*";
+
+ seq += "\n";
+ }
+ }
+
+ OVRLipSyncDebugConsole.Clear();
+
+ if (seq != "")
+ {
+ OVRLipSyncDebugConsole.Log(seq);
+ }
+ }
+ }
+
+ void ToggleAudioLoopback()
+ {
+ audioLoopback = !audioLoopback;
+
+ if (hasDebugConsole)
+ {
+ OVRLipSyncDebugConsole.Clear();
+ OVRLipSyncDebugConsole.ClearTimeout(1.5f);
+
+ if (audioLoopback)
+ OVRLipSyncDebugConsole.Log("LOOPBACK MODE: ENABLED");
+ else
+ OVRLipSyncDebugConsole.Log("LOOPBACK MODE: DISABLED");
+ }
+ }
+
+ // LocalTouchEventCallback
+ void LocalTouchEventCallback(OVRTouchpad.TouchEvent touchEvent)
+ {
+ string g = "LINEAR GAIN: ";
+
+ switch (touchEvent)
+ {
+ case (OVRTouchpad.TouchEvent.SingleTap):
+ ToggleAudioLoopback();
+ break;
+
+ case (OVRTouchpad.TouchEvent.Up):
+ gain += 1.0f;
+ if (gain > 15.0f)
+ gain = 15.0f;
+
+ g += gain;
+
+ if (hasDebugConsole)
+ {
+ OVRLipSyncDebugConsole.Clear();
+ OVRLipSyncDebugConsole.Log(g);
+ OVRLipSyncDebugConsole.ClearTimeout(1.5f);
+ }
+
+ break;
+
+ case (OVRTouchpad.TouchEvent.Down):
+ gain -= 1.0f;
+ if (gain < 1.0f) gain = 1.0f;
+
+ g += gain;
+
+ if (hasDebugConsole)
+ {
+ OVRLipSyncDebugConsole.Clear();
+ OVRLipSyncDebugConsole.Log(g);
+ OVRLipSyncDebugConsole.ClearTimeout(1.5f);
+ }
+
+ break;
+ }
+ }
+}
diff --git a/Assets/Oculus/LipSync/Scripts/OVRLipSyncContext.cs.meta b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContext.cs.meta
new file mode 100644
index 0000000..485aa09
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContext.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: f43c520a9bad8a3489109c869f454576
+timeCreated: 1438890961
+licenseType: Store
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextBase.cs b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextBase.cs
new file mode 100644
index 0000000..0629cec
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextBase.cs
@@ -0,0 +1,208 @@
+/************************************************************************************
+Filename : OVRLipSyncContext.cs
+Content : Interface to Oculus Lip-Sync engine
+Created : August 6th, 2015
+Copyright : Copyright Facebook Technologies, LLC and its affiliates.
+ All rights reserved.
+
+Licensed under the Oculus Audio SDK License Version 3.3 (the "License");
+you may not use the Oculus Audio SDK except in compliance with the License,
+which is provided at the time of installation or download, or which
+otherwise accompanies this software in either electronic or hard copy form.
+
+You may obtain a copy of the License at
+
+https://developer.oculus.com/licenses/audio-3.3/
+
+Unless required by applicable law or agreed to in writing, the Oculus Audio SDK
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+************************************************************************************/
+using UnityEngine;
+
+
+[RequireComponent(typeof(AudioSource))]
+
+//-------------------------------------------------------------------------------------
+// ***** OVRLipSyncContextBase
+//
+///
+/// OVRLipSyncContextBase interfaces into the Oculus phoneme recognizer.
+/// This component should be added into the scene once for each Audio Source.
+///
+///
+public class OVRLipSyncContextBase : MonoBehaviour
+{
+ // * * * * * * * * * * * * *
+ // Public members
+ public AudioSource audioSource = null;
+
+ [Tooltip("Which lip sync provider to use for viseme computation.")]
+ public OVRLipSync.ContextProviders provider = OVRLipSync.ContextProviders.Enhanced;
+ [Tooltip("Enable DSP offload on supported Android devices.")]
+ public bool enableAcceleration = true;
+
+ // * * * * * * * * * * * * *
+ // Private members
+ private OVRLipSync.Frame frame = new OVRLipSync.Frame();
+ private uint context = 0; // 0 is no context
+
+ private int _smoothing;
+ public int Smoothing
+ {
+ set
+ {
+ OVRLipSync.Result result =
+ OVRLipSync.SendSignal(context, OVRLipSync.Signals.VisemeSmoothing, value, 0);
+
+ if (result != OVRLipSync.Result.Success)
+ {
+ if (result == OVRLipSync.Result.InvalidParam)
+ {
+ Debug.LogError("OVRLipSyncContextBase.SetSmoothing: A viseme smoothing" +
+ " parameter is invalid, it should be between 1 and 100!");
+ }
+ else
+ {
+ Debug.LogError("OVRLipSyncContextBase.SetSmoothing: An unexpected" +
+ " error occured.");
+ }
+ }
+
+ _smoothing = value;
+ }
+ get
+ {
+ return _smoothing;
+ }
+ }
+
+ public uint Context
+ {
+ get
+ {
+ return context;
+ }
+ }
+
+ protected OVRLipSync.Frame Frame
+ {
+ get
+ {
+ return frame;
+ }
+ }
+
+ ///
+ /// Awake this instance.
+ ///
+ void Awake()
+ {
+ // Cache the audio source we are going to be using to pump data to the SR
+ if (!audioSource)
+ {
+ audioSource = GetComponent();
+ }
+
+ lock (this)
+ {
+ if (context == 0)
+ {
+ if (OVRLipSync.CreateContext(ref context, provider, 0, enableAcceleration)
+ != OVRLipSync.Result.Success)
+ {
+ Debug.LogError("OVRLipSyncContextBase.Start ERROR: Could not create" +
+ " Phoneme context.");
+ return;
+ }
+ }
+ }
+ }
+
+
+ ///
+ /// Raises the destroy event.
+ ///
+ void OnDestroy()
+ {
+ // Create the context that we will feed into the audio buffer
+ lock (this)
+ {
+ if (context != 0)
+ {
+ if (OVRLipSync.DestroyContext(context) != OVRLipSync.Result.Success)
+ {
+ Debug.LogError("OVRLipSyncContextBase.OnDestroy ERROR: Could not delete" +
+ " Phoneme context.");
+ }
+ }
+ }
+ }
+
+ // * * * * * * * * * * * * *
+ // Public Functions
+
+ ///
+ /// Gets the current phoneme frame (lock and copy current frame to caller frame)
+ ///
+ /// error code
+ /// In frame.
+ public OVRLipSync.Frame GetCurrentPhonemeFrame()
+ {
+ return frame;
+ }
+
+ ///
+ /// Sets a given viseme id blend weight to a given amount
+ ///
+ /// Integer viseme ID
+ /// Integer viseme amount
+ public void SetVisemeBlend(int viseme, int amount)
+ {
+ OVRLipSync.Result result =
+ OVRLipSync.SendSignal(context, OVRLipSync.Signals.VisemeAmount, viseme, amount);
+
+ if (result != OVRLipSync.Result.Success)
+ {
+ if (result == OVRLipSync.Result.InvalidParam)
+ {
+ Debug.LogError("OVRLipSyncContextBase.SetVisemeBlend: Viseme ID is invalid.");
+ }
+ else
+ {
+ Debug.LogError("OVRLipSyncContextBase.SetVisemeBlend: An unexpected" +
+ " error occured.");
+ }
+ }
+ }
+
+ ///
+ /// Sets a given viseme id blend weight to a given amount
+ ///
+ /// Integer viseme amount
+ public void SetLaughterBlend(int amount)
+ {
+ OVRLipSync.Result result =
+ OVRLipSync.SendSignal(context, OVRLipSync.Signals.LaughterAmount, amount, 0);
+
+ if (result != OVRLipSync.Result.Success)
+ {
+ Debug.LogError("OVRLipSyncContextBase.SetLaughterBlend: An unexpected" +
+ " error occured.");
+ }
+ }
+
+ ///
+ /// Resets the context.
+ ///
+ /// error code
+ public OVRLipSync.Result ResetContext()
+ {
+ // Reset visemes to silence etc.
+ frame.Reset();
+
+ return OVRLipSync.ResetContext(context);
+ }
+}
diff --git a/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextBase.cs.meta b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextBase.cs.meta
new file mode 100644
index 0000000..517bc00
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextBase.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c0d528b758a004fcaac677043e8de6ad
+timeCreated: 1496772358
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextCanned.cs b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextCanned.cs
new file mode 100644
index 0000000..0ee918a
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextCanned.cs
@@ -0,0 +1,51 @@
+/************************************************************************************
+Filename : OVRLipSyncContextCanned.cs
+Content : Interface to Oculus Lip-Sync engine
+Created : August 6th, 2015
+Copyright : Copyright Facebook Technologies, LLC and its affiliates.
+ All rights reserved.
+
+Licensed under the Oculus Audio SDK License Version 3.3 (the "License");
+you may not use the Oculus Audio SDK except in compliance with the License,
+which is provided at the time of installation or download, or which
+otherwise accompanies this software in either electronic or hard copy form.
+
+You may obtain a copy of the License at
+
+https://developer.oculus.com/licenses/audio-3.3/
+
+Unless required by applicable law or agreed to in writing, the Oculus Audio SDK
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+************************************************************************************/
+using UnityEngine;
+
+
+[RequireComponent(typeof(AudioSource))]
+
+//-------------------------------------------------------------------------------------
+// ***** OVRLipSyncContextCanned
+//
+///
+/// OVRLipSyncContextCanned drives a canned phoneme sequence based on a pre-generated asset.
+///
+///
+public class OVRLipSyncContextCanned : OVRLipSyncContextBase
+{
+ [Tooltip("Pre-computed viseme sequence asset. Compute from audio in Unity with Tools -> Oculus -> Generate Lip Sync Assets.")]
+ public OVRLipSyncSequence currentSequence;
+
+ ///
+ /// Run processes that need to be updated in game thread
+ ///
+ void Update()
+ {
+ if (audioSource.isPlaying && currentSequence != null)
+ {
+ OVRLipSync.Frame currentFrame = currentSequence.GetFrameAtTime(audioSource.time);
+ this.Frame.CopyInput(currentFrame);
+ }
+ }
+}
diff --git a/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextCanned.cs.meta b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextCanned.cs.meta
new file mode 100644
index 0000000..e39f138
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextCanned.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: e073e338e215b4ae9a7fcdf6891e7955
+timeCreated: 1496772358
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextMorphTarget.cs b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextMorphTarget.cs
new file mode 100644
index 0000000..624292c
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextMorphTarget.cs
@@ -0,0 +1,229 @@
+/************************************************************************************
+Filename : OVRLipSyncContextMorphTarget.cs
+Content : This bridges the viseme output to the morph targets
+Created : August 7th, 2015
+Copyright : Copyright Facebook Technologies, LLC and its affiliates.
+ All rights reserved.
+
+Licensed under the Oculus Audio SDK License Version 3.3 (the "License");
+you may not use the Oculus Audio SDK except in compliance with the License,
+which is provided at the time of installation or download, or which
+otherwise accompanies this software in either electronic or hard copy form.
+
+You may obtain a copy of the License at
+
+https://developer.oculus.com/licenses/audio-3.3/
+
+Unless required by applicable law or agreed to in writing, the Oculus Audio SDK
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+************************************************************************************/
+using UnityEngine;
+using System.Linq;
+
+public class OVRLipSyncContextMorphTarget : MonoBehaviour
+{
+ // PUBLIC
+
+ // Manually assign the skinned mesh renderer to this script
+ [Tooltip("Skinned Mesh Rendered target to be driven by Oculus Lipsync")]
+ public SkinnedMeshRenderer skinnedMeshRenderer = null;
+
+ // Set the blendshape index to go to (-1 means there is not one assigned)
+ [OVRNamedArray(new string[] { "sil", "PP", "FF", "TH", "DD", "kk", "CH", "SS",
+ "nn", "RR", "aa", "E", "ih", "oh", "ou" })]
+ [Tooltip("Blendshape index to trigger for each viseme.")]
+ public int [] visemeToBlendTargets = Enumerable.Range(0, OVRLipSync.VisemeCount).ToArray();
+
+ // enable/disable sending signals to viseme engine
+ [Tooltip("Enable using the test keys defined below to manually trigger each viseme.")]
+ public bool enableVisemeTestKeys = false;
+ [Tooltip("Test keys used to manually trigger an individual viseme - by " +
+ "default the QWERTY row of a US keyboard.")]
+ public KeyCode[] visemeTestKeys =
+ {
+ KeyCode.BackQuote,
+ KeyCode.Tab,
+ KeyCode.Q,
+ KeyCode.W,
+ KeyCode.E,
+ KeyCode.R,
+ KeyCode.T,
+ KeyCode.Y,
+ KeyCode.U,
+ KeyCode.I,
+ KeyCode.O,
+ KeyCode.P,
+ KeyCode.LeftBracket,
+ KeyCode.RightBracket,
+ KeyCode.Backslash,
+ };
+
+ [Tooltip("Test key used to manually trigger laughter and visualise the results")]
+ public KeyCode laughterKey = KeyCode.CapsLock;
+
+ [Tooltip("Blendshape index to trigger for laughter")]
+ public int laughterBlendTarget = OVRLipSync.VisemeCount;
+
+ [Range(0.0f, 1.0f)]
+ [Tooltip("Laughter probability threshold above which the laughter blendshape will be activated")]
+ public float laughterThreshold = 0.5f;
+
+ [Range(0.0f, 3.0f)]
+ [Tooltip("Laughter animation linear multiplier, the final output will be clamped to 1.0")]
+ public float laughterMultiplier = 1.5f;
+
+ // smoothing amount
+ [Range(1, 100)]
+ [Tooltip("Smoothing of 1 will yield only the current predicted viseme, 100 will yield an extremely smooth viseme response.")]
+ public int smoothAmount = 70;
+
+ // PRIVATE
+
+ // Look for a lip-sync Context (should be set at the same level as this component)
+ private OVRLipSyncContextBase lipsyncContext = null;
+
+
+ ///
+ /// Start this instance.
+ ///
+ void Start ()
+ {
+ // morph target needs to be set manually; possibly other components will need the same
+ if(skinnedMeshRenderer == null)
+ {
+ Debug.LogError("LipSyncContextMorphTarget.Start Error: " +
+ "Please set the target Skinned Mesh Renderer to be controlled!");
+ return;
+ }
+
+ // make sure there is a phoneme context assigned to this object
+ lipsyncContext = GetComponent();
+ if(lipsyncContext == null)
+ {
+ Debug.LogError("LipSyncContextMorphTarget.Start Error: " +
+ "No OVRLipSyncContext component on this object!");
+ }
+ else
+ {
+ // Send smoothing amount to context
+ lipsyncContext.Smoothing = smoothAmount;
+ }
+ }
+
+ ///
+ /// Update this instance.
+ ///
+ void Update ()
+ {
+ if((lipsyncContext != null) && (skinnedMeshRenderer != null))
+ {
+ // get the current viseme frame
+ OVRLipSync.Frame frame = lipsyncContext.GetCurrentPhonemeFrame();
+ if (frame != null)
+ {
+ SetVisemeToMorphTarget(frame);
+
+ SetLaughterToMorphTarget(frame);
+ }
+
+ // TEST visemes by capturing key inputs and sending a signal
+ CheckForKeys();
+
+ // Update smoothing value
+ if (smoothAmount != lipsyncContext.Smoothing)
+ {
+ lipsyncContext.Smoothing = smoothAmount;
+ }
+ }
+ }
+
+ ///
+ /// Sends the signals.
+ ///
+ void CheckForKeys()
+ {
+ if (enableVisemeTestKeys)
+ {
+ for (int i = 0; i < OVRLipSync.VisemeCount; ++i)
+ {
+ CheckVisemeKey(visemeTestKeys[i], i, 100);
+ }
+ }
+
+ CheckLaughterKey();
+ }
+
+ ///
+ /// Sets the viseme to morph target.
+ ///
+ void SetVisemeToMorphTarget(OVRLipSync.Frame frame)
+ {
+ for (int i = 0; i < visemeToBlendTargets.Length; i++)
+ {
+ if (visemeToBlendTargets[i] != -1)
+ {
+ // Viseme blend weights are in range of 0->1.0, we need to make range 100
+ skinnedMeshRenderer.SetBlendShapeWeight(
+ visemeToBlendTargets[i],
+ frame.Visemes[i] * 100.0f);
+ }
+ }
+ }
+
+ ///
+ /// Sets the laughter to morph target.
+ ///
+ void SetLaughterToMorphTarget(OVRLipSync.Frame frame)
+ {
+ if (laughterBlendTarget != -1)
+ {
+ // Laughter score will be raw classifier output in [0,1]
+ float laughterScore = frame.laughterScore;
+
+ // Threshold then re-map to [0,1]
+ laughterScore = laughterScore < laughterThreshold ? 0.0f : laughterScore - laughterThreshold;
+ laughterScore = Mathf.Min(laughterScore * laughterMultiplier, 1.0f);
+ laughterScore *= 1.0f / laughterThreshold;
+
+ skinnedMeshRenderer.SetBlendShapeWeight(
+ laughterBlendTarget,
+ laughterScore * 100.0f);
+ }
+ }
+
+ ///
+ /// Sends the viseme signal.
+ ///
+ /// Key.
+ /// Viseme.
+ /// Arg1.
+ void CheckVisemeKey(KeyCode key, int viseme, int amount)
+ {
+ if (Input.GetKeyDown(key))
+ {
+ lipsyncContext.SetVisemeBlend(visemeToBlendTargets[viseme], amount);
+ }
+ if (Input.GetKeyUp(key))
+ {
+ lipsyncContext.SetVisemeBlend(visemeToBlendTargets[viseme], 0);
+ }
+ }
+
+ ///
+ /// Sends the laughter signal.
+ ///
+ void CheckLaughterKey()
+ {
+ if (Input.GetKeyDown(laughterKey))
+ {
+ lipsyncContext.SetLaughterBlend(100);
+ }
+ if (Input.GetKeyUp(laughterKey))
+ {
+ lipsyncContext.SetLaughterBlend(0);
+ }
+ }
+}
diff --git a/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextMorphTarget.cs.meta b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextMorphTarget.cs.meta
new file mode 100644
index 0000000..3d107f3
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextMorphTarget.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: b0b97b38f2f1fd24185315141a6c6a56
+timeCreated: 1438985973
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextTextureFlip.cs b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextTextureFlip.cs
new file mode 100644
index 0000000..35e6755
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextTextureFlip.cs
@@ -0,0 +1,150 @@
+/************************************************************************************
+Filename : OVRLipSyncContextTextureFlip.cs
+Content : This bridges the phoneme/viseme output to texture flip targets
+Created : August 7th, 2015
+Copyright : Copyright Facebook Technologies, LLC and its affiliates.
+ All rights reserved.
+
+Licensed under the Oculus Audio SDK License Version 3.3 (the "License");
+you may not use the Oculus Audio SDK except in compliance with the License,
+which is provided at the time of installation or download, or which
+otherwise accompanies this software in either electronic or hard copy form.
+
+You may obtain a copy of the License at
+
+https://developer.oculus.com/licenses/audio-3.3/
+
+Unless required by applicable law or agreed to in writing, the Oculus Audio SDK
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+************************************************************************************/
+using UnityEngine;
+
+public class OVRLipSyncContextTextureFlip : MonoBehaviour
+{
+ // PUBLIC
+
+ // Manually assign the material
+ public Material material = null;
+
+ // Set the textures for each viseme. We should follow the viseme order as specified
+ // by the Phoneme list
+ [Tooltip("The texture used for each viseme.")]
+ [OVRNamedArray(new string[] { "sil", "PP", "FF", "TH", "DD", "kk", "CH",
+ "SS", "nn", "RR", "aa", "E", "ih", "oh", "ou" })]
+ public Texture[] Textures = new Texture[OVRLipSync.VisemeCount];
+
+ // smoothing amount
+ [Range(1, 100)]
+ [Tooltip("Smoothing of 1 will yield only the current predicted viseme," +
+ "100 will yield an extremely smooth viseme response.")]
+ public int smoothAmount = 70;
+
+ // PRIVATE
+
+ // Look for a Phoneme Context (should be set at the same level as this component)
+ private OVRLipSyncContextBase lipsyncContext = null;
+
+ // Capture the old viseme frame (we will write back into this one)
+ private OVRLipSync.Frame oldFrame = new OVRLipSync.Frame();
+
+ ///
+ /// Start this instance.
+ ///
+ void Start()
+ {
+ // make sure there is a phoneme context assigned to this object
+ lipsyncContext = GetComponent();
+ if (lipsyncContext == null)
+ {
+ Debug.LogWarning("LipSyncContextTextureFlip.Start WARNING:" +
+ " No lip sync context component set to object");
+ }
+ else
+ {
+ // Send smoothing amount to context
+ lipsyncContext.Smoothing = smoothAmount;
+ }
+
+ if (material == null)
+ {
+ Debug.LogWarning("LipSyncContextTextureFlip.Start WARNING:" +
+ " Lip sync context texture flip has no material target to control!");
+ }
+ }
+
+ ///
+ /// Update this instance.
+ ///
+ void Update ()
+ {
+ if((lipsyncContext != null) && (material != null))
+ {
+ // trap inputs and send signals to phoneme engine for testing purposes
+
+ // get the current viseme frame
+ OVRLipSync.Frame frame = lipsyncContext.GetCurrentPhonemeFrame();
+ if (frame != null)
+ {
+ // Perform smoothing here if on original provider
+ if (lipsyncContext.provider == OVRLipSync.ContextProviders.Original)
+ {
+ // Go through the current and old
+ for (int i = 0; i < frame.Visemes.Length; i++)
+ {
+ // Convert 1-100 to old * (0.00 - 0.99)
+ float smoothing = ((smoothAmount - 1) / 100.0f);
+ oldFrame.Visemes[i] =
+ oldFrame.Visemes[i] * smoothing +
+ frame.Visemes[i] * (1.0f - smoothing);
+ }
+ }
+ else
+ {
+ oldFrame.Visemes = frame.Visemes;
+ }
+
+ SetVisemeToTexture();
+ }
+ }
+
+ // Update smoothing value in context
+ if (smoothAmount != lipsyncContext.Smoothing)
+ {
+ lipsyncContext.Smoothing = smoothAmount;
+ }
+ }
+
+ ///
+ /// Sets the viseme to texture.
+ ///
+ void SetVisemeToTexture()
+ {
+ // This setting will run through all the Visemes, find the
+ // one with the greatest amplitude and set it to max value.
+ // all other visemes will be set to zero.
+ int gV = -1;
+ float gA = 0.0f;
+
+ for (int i = 0; i < oldFrame.Visemes.Length; i++)
+ {
+ if(oldFrame.Visemes[i] > gA)
+ {
+ gV = i;
+ gA = oldFrame.Visemes[i];
+ }
+ }
+
+ if ((gV != -1) && (gV < Textures.Length))
+ {
+ Texture t = Textures[gV];
+
+ if(t != null)
+ {
+ material.SetTexture("_MainTex", t);
+ }
+ }
+ }
+}
diff --git a/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextTextureFlip.cs.meta b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextTextureFlip.cs.meta
new file mode 100644
index 0000000..fc7dfb4
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/OVRLipSyncContextTextureFlip.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: bc30a49f30010eb42a8b59ec685eac57
+timeCreated: 1444164852
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scripts/OVRLipSyncMicInput.cs b/Assets/Oculus/LipSync/Scripts/OVRLipSyncMicInput.cs
new file mode 100644
index 0000000..54d1763
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/OVRLipSyncMicInput.cs
@@ -0,0 +1,350 @@
+/************************************************************************************
+Filename : OVRLipSyncMicInput.cs
+Content : Interface to microphone input
+Created : May 12, 2015
+Copyright : Copyright Facebook Technologies, LLC and its affiliates.
+ All rights reserved.
+
+Licensed under the Oculus Audio SDK License Version 3.3 (the "License");
+you may not use the Oculus Audio SDK except in compliance with the License,
+which is provided at the time of installation or download, or which
+otherwise accompanies this software in either electronic or hard copy form.
+
+You may obtain a copy of the License at
+
+https://developer.oculus.com/licenses/audio-3.3/
+
+Unless required by applicable law or agreed to in writing, the Oculus Audio SDK
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+************************************************************************************/
+
+using System;
+using UnityEngine;
+using System.Diagnostics;
+using Debug = UnityEngine.Debug;
+using System.Threading;
+
+[RequireComponent(typeof(AudioSource))]
+
+public class OVRLipSyncMicInput : MonoBehaviour
+{
+ public enum micActivation
+ {
+ HoldToSpeak,
+ PushToSpeak,
+ ConstantSpeak
+ }
+
+ // PUBLIC MEMBERS
+ [Tooltip("Manual specification of Audio Source - " +
+ "by default will use any attached to the same object.")]
+ public AudioSource audioSource = null;
+
+
+ [Tooltip("Enable a keypress to toggle the microphone device selection GUI.")]
+ public bool enableMicSelectionGUI = false;
+ [Tooltip("Key to toggle the microphone selection GUI if enabled.")]
+ public KeyCode micSelectionGUIKey = KeyCode.M;
+
+ [SerializeField]
+ [Range(0.0f, 100.0f)]
+ [Tooltip("Microphone input volume control.")]
+ private float micInputVolume = 100;
+
+ [SerializeField]
+ [Tooltip("Requested microphone input frequency")]
+ private int micFrequency = 48000;
+ public float MicFrequency
+ {
+ get { return micFrequency; }
+ set { micFrequency = (int)Mathf.Clamp((float)value, 0, 96000); }
+ }
+
+ [Tooltip("Microphone input control method. Hold To Speak and Push" +
+ " To Speak are driven with the Mic Activation Key.")]
+ public micActivation micControl = micActivation.ConstantSpeak;
+ [Tooltip("Key used to drive Hold To Speak and Push To Speak methods" +
+ " of microphone input control.")]
+ public KeyCode micActivationKey = KeyCode.Space;
+
+ [Tooltip("Will contain the string name of the selected microphone device - read only.")]
+ public string selectedDevice;
+
+ // PRIVATE MEMBERS
+ private bool micSelected = false;
+ private int minFreq, maxFreq;
+ private bool focused = true;
+
+ //----------------------------------------------------
+ // MONOBEHAVIOUR OVERRIDE FUNCTIONS
+ //----------------------------------------------------
+
+ ///
+ /// Awake this instance.
+ ///
+ void Awake()
+ {
+ // First thing to do, cache the unity audio source (can be managed by the
+ // user if audio source can change)
+ if (!audioSource) audioSource = GetComponent();
+ if (!audioSource) return; // this should never happen
+ }
+
+ ///
+ /// Start this instance.
+ ///
+ void Start()
+ {
+ audioSource.loop = true; // Set the AudioClip to loop
+ audioSource.mute = false;
+
+ if (Microphone.devices.Length != 0)
+ {
+ selectedDevice = Microphone.devices[0].ToString();
+ micSelected = true;
+ GetMicCaps();
+ }
+ }
+
+ ///
+ /// Update this instance.
+ ///
+ void Update()
+ {
+ if (!focused)
+ {
+ if (Microphone.IsRecording(selectedDevice))
+ {
+ StopMicrophone();
+ }
+ return;
+ }
+
+ if (!Application.isPlaying)
+ {
+ StopMicrophone();
+ return;
+ }
+
+ audioSource.volume = (micInputVolume / 100);
+
+ //Hold To Speak
+ if (micControl == micActivation.HoldToSpeak)
+ {
+ if (Input.GetKey(micActivationKey))
+ {
+ if (!Microphone.IsRecording(selectedDevice))
+ {
+ StartMicrophone();
+ }
+ }
+ else
+ {
+ if (Microphone.IsRecording(selectedDevice))
+ {
+ StopMicrophone();
+ }
+ }
+ }
+
+ //Push To Talk
+ if (micControl == micActivation.PushToSpeak)
+ {
+ if (Input.GetKeyDown(micActivationKey))
+ {
+ if (Microphone.IsRecording(selectedDevice))
+ {
+ StopMicrophone();
+ }
+ else if (!Microphone.IsRecording(selectedDevice))
+ {
+ StartMicrophone();
+ }
+ }
+ }
+
+ //Constant Speak
+ if (micControl == micActivation.ConstantSpeak)
+ {
+ if (!Microphone.IsRecording(selectedDevice))
+ {
+ StartMicrophone();
+ }
+ }
+
+
+ //Mic Selected = False
+ if (enableMicSelectionGUI)
+ {
+ if (Input.GetKeyDown(micSelectionGUIKey))
+ {
+ micSelected = false;
+ }
+ }
+ }
+
+
+ ///
+ /// Raises the application focus event.
+ ///
+ /// If set to true : focused.
+ void OnApplicationFocus(bool focus)
+ {
+ focused = focus;
+
+ if (!focused)
+ StopMicrophone();
+ }
+
+ ///
+ /// Raises the application pause event.
+ ///
+ /// If set to true : paused.
+ void OnApplicationPause(bool pauseStatus)
+ {
+ focused = !pauseStatus;
+
+ if (!focused)
+ StopMicrophone();
+ }
+
+ void OnDisable()
+ {
+ StopMicrophone();
+ }
+
+ ///
+ /// Raises the GU event.
+ ///
+ void OnGUI()
+ {
+ MicDeviceGUI((Screen.width / 2) - 150, (Screen.height / 2) - 75, 300, 50, 10, -300);
+ }
+
+ //----------------------------------------------------
+ // PUBLIC FUNCTIONS
+ //----------------------------------------------------
+
+ ///
+ /// Mics the device GU.
+ ///
+ /// Left.
+ /// Top.
+ /// Width.
+ /// Height.
+ /// Button space top.
+ /// Button space left.
+ public void MicDeviceGUI(
+ float left,
+ float top,
+ float width,
+ float height,
+ float buttonSpaceTop,
+ float buttonSpaceLeft)
+ {
+ //If there is more than one device, choose one.
+ if (Microphone.devices.Length >= 1 && enableMicSelectionGUI == true && micSelected == false)
+ {
+ for (int i = 0; i < Microphone.devices.Length; ++i)
+ {
+ if (GUI.Button(new Rect(left + ((width + buttonSpaceLeft) * i),
+ top + ((height + buttonSpaceTop) * i), width, height),
+ Microphone.devices[i].ToString()))
+ {
+ StopMicrophone();
+ selectedDevice = Microphone.devices[i].ToString();
+ micSelected = true;
+ GetMicCaps();
+ StartMicrophone();
+ }
+ }
+ }
+ }
+
+ ///
+ /// Gets the mic caps.
+ ///
+ public void GetMicCaps()
+ {
+ if (micSelected == false) return;
+
+ //Gets the frequency of the device
+ Microphone.GetDeviceCaps(selectedDevice, out minFreq, out maxFreq);
+
+ if (minFreq == 0 && maxFreq == 0)
+ {
+ Debug.LogWarning("GetMicCaps warning:: min and max frequencies are 0");
+ minFreq = 44100;
+ maxFreq = 44100;
+ }
+
+ if (micFrequency > maxFreq)
+ micFrequency = maxFreq;
+ }
+
+ ///
+ /// Starts the microphone.
+ ///
+ public void StartMicrophone()
+ {
+ if (micSelected == false) return;
+
+ //Starts recording
+ audioSource.clip = Microphone.Start(selectedDevice, true, 1, micFrequency);
+
+ Stopwatch timer = Stopwatch.StartNew();
+
+ // Wait until the recording has started
+ while (!(Microphone.GetPosition(selectedDevice) > 0) && timer.Elapsed.TotalMilliseconds < 1000) {
+ Thread.Sleep(50);
+ }
+
+ if (Microphone.GetPosition(selectedDevice) <= 0)
+ {
+ throw new Exception("Timeout initializing microphone " + selectedDevice);
+ }
+ // Play the audio source
+ audioSource.Play();
+ }
+
+ ///
+ /// Stops the microphone.
+ ///
+ public void StopMicrophone()
+ {
+ if (micSelected == false) return;
+
+ // Overriden with a clip to play? Don't stop the audio source
+ if ((audioSource != null) &&
+ (audioSource.clip != null) &&
+ (audioSource.clip.name == "Microphone"))
+ {
+ audioSource.Stop();
+ }
+
+ // Reset to stop mouth movement
+ OVRLipSyncContext context = GetComponent();
+ context.ResetContext();
+
+ Microphone.End(selectedDevice);
+ }
+
+
+ //----------------------------------------------------
+ // PRIVATE FUNCTIONS
+ //----------------------------------------------------
+
+ ///
+ /// Gets the averaged volume.
+ ///
+ /// The averaged volume.
+ float GetAveragedVolume()
+ {
+ // We will use the SR to get average volume
+ // return OVRSpeechRec.GetAverageVolume();
+ return 0.0f;
+ }
+}
diff --git a/Assets/Oculus/LipSync/Scripts/OVRLipSyncMicInput.cs.meta b/Assets/Oculus/LipSync/Scripts/OVRLipSyncMicInput.cs.meta
new file mode 100644
index 0000000..bdc244c
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/OVRLipSyncMicInput.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 02d5ed157083b494e85013bad8fd5e12
+timeCreated: 1437430905
+licenseType: Store
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/LipSync/Scripts/OVRLipSyncSequence.cs b/Assets/Oculus/LipSync/Scripts/OVRLipSyncSequence.cs
new file mode 100644
index 0000000..a231bc8
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/OVRLipSyncSequence.cs
@@ -0,0 +1,132 @@
+/************************************************************************************
+Filename : OVRLipSyncSequence.cs
+Content : LipSync frames container
+Created : May 17th, 2018
+Copyright : Copyright Facebook Technologies, LLC and its affiliates.
+ All rights reserved.
+
+Licensed under the Oculus Audio SDK License Version 3.3 (the "License");
+you may not use the Oculus Audio SDK except in compliance with the License,
+which is provided at the time of installation or download, or which
+otherwise accompanies this software in either electronic or hard copy form.
+
+You may obtain a copy of the License at
+
+https://developer.oculus.com/licenses/audio-3.3/
+
+Unless required by applicable law or agreed to in writing, the Oculus Audio SDK
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+************************************************************************************/
+using UnityEngine;
+using System.Collections.Generic;
+using System.Threading;
+
+// Sequence - holds ordered entries for playback
+[System.Serializable]
+public class OVRLipSyncSequence : ScriptableObject
+{
+ public List entries = new List();
+ public float length; // in seconds
+
+ public OVRLipSync.Frame GetFrameAtTime(float time)
+ {
+ OVRLipSync.Frame frame = null;
+ if (time < length && entries.Count > 0)
+ {
+ // todo: we could blend frame output here if we wanted.
+ float percentComplete = time / length;
+ frame = entries[(int)(entries.Count * percentComplete)];
+ }
+ return frame;
+ }
+
+#if UNITY_EDITOR
+
+ private static readonly int sSampleSize = 1024;
+
+ public static OVRLipSyncSequence CreateSequenceFromAudioClip(AudioClip clip)
+ {
+ OVRLipSyncSequence sequence = null;
+
+ if (clip.channels > 2)
+ {
+ Debug.LogError(clip.name +
+ ": Cannot process phonemes from an audio clip with " +
+ "more than 2 channels");
+ return null;
+ }
+
+ if (clip.loadType != AudioClipLoadType.DecompressOnLoad)
+ {
+ Debug.LogError(clip.name +
+ ": Cannot process phonemes from an audio clip unless " +
+ "its load type is set to DecompressOnLoad.");
+ return null;
+ }
+
+ if (OVRLipSync.Initialize(clip.frequency, sSampleSize) != OVRLipSync.Result.Success)
+ {
+ Debug.LogError("Could not create Lip Sync engine.");
+ return null;
+ }
+
+ if (clip.loadState != AudioDataLoadState.Loaded)
+ {
+ Debug.LogError("Clip is not loaded!");
+ return null;
+ }
+
+ uint context = 0;
+ OVRLipSync.Result result =
+ OVRLipSync.CreateContext(ref context, OVRLipSync.ContextProviders.Enhanced);
+
+ if (result != OVRLipSync.Result.Success)
+ {
+ Debug.LogError("Could not create Phoneme context. (" + result + ")");
+ OVRLipSync.Shutdown();
+ return null;
+ }
+
+ List frames = new List();
+ float[] samples = new float[sSampleSize * clip.channels];
+ int totalSamples = clip.samples;
+ for (int x = 0; x < totalSamples; x += sSampleSize)
+ {
+ // GetData loops at the end of the read. Prevent that when it happens.
+ if (x + samples.Length > totalSamples)
+ {
+ samples = new float[(totalSamples - x) * clip.channels];
+ }
+ clip.GetData(samples, x);
+ OVRLipSync.Frame frame = new OVRLipSync.Frame();
+ if (clip.channels == 2)
+ {
+ // interleaved = stereo data, alternating floats
+ OVRLipSync.ProcessFrame(context, samples, frame);
+ }
+ else
+ {
+ // mono
+ OVRLipSync.ProcessFrame(context, samples, frame, OVRLipSync.AudioDataType.F32_Mono);
+ }
+
+ frames.Add(frame);
+ }
+
+ Debug.Log(clip.name + " produced " + frames.Count +
+ " viseme frames, playback rate is " + (frames.Count / clip.length) +
+ " fps");
+ OVRLipSync.DestroyContext(context);
+ OVRLipSync.Shutdown();
+
+ sequence = ScriptableObject.CreateInstance();
+ sequence.entries = frames;
+ sequence.length = clip.length;
+
+ return sequence;
+ }
+#endif
+};
diff --git a/Assets/Oculus/LipSync/Scripts/OVRLipSyncSequence.cs.meta b/Assets/Oculus/LipSync/Scripts/OVRLipSyncSequence.cs.meta
new file mode 100644
index 0000000..96957dd
--- /dev/null
+++ b/Assets/Oculus/LipSync/Scripts/OVRLipSyncSequence.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 354250b5dc6a14f49b541724e9dd3c37
+timeCreated: 1496772358
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform.meta b/Assets/Oculus/Platform.meta
new file mode 100644
index 0000000..f4d8f0e
--- /dev/null
+++ b/Assets/Oculus/Platform.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: bf86db09b37c77547b5038d6d021e469
+folderAsset: yes
+timeCreated: 1538788975
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Editor.meta b/Assets/Oculus/Platform/Editor.meta
new file mode 100644
index 0000000..f2de988
--- /dev/null
+++ b/Assets/Oculus/Platform/Editor.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 7f9ce25317fec85488742d218950bf3d
+folderAsset: yes
+timeCreated: 1520037586
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Editor/GUIHelper.cs b/Assets/Oculus/Platform/Editor/GUIHelper.cs
new file mode 100644
index 0000000..bdb37f7
--- /dev/null
+++ b/Assets/Oculus/Platform/Editor/GUIHelper.cs
@@ -0,0 +1,45 @@
+namespace Oculus.Platform
+{
+ using UnityEditor;
+ using UnityEngine;
+
+ class GUIHelper {
+ public delegate void Worker();
+
+ static void InOut(Worker begin, Worker body, Worker end) {
+ try {
+ begin();
+ body();
+ } finally {
+ end();
+ }
+ }
+
+ public static void HInset(int pixels, Worker worker) {
+ InOut(
+ () => {
+ GUILayout.BeginHorizontal();
+ GUILayout.Space(pixels);
+ GUILayout.BeginVertical();
+ },
+ worker,
+ () => {
+ GUILayout.EndVertical();
+ GUILayout.EndHorizontal();
+ }
+ );
+ }
+
+ public delegate T ControlWorker();
+ public static T MakeControlWithLabel(GUIContent label, ControlWorker worker) {
+ EditorGUILayout.BeginHorizontal();
+ EditorGUILayout.LabelField(label);
+
+ var result = worker();
+
+ EditorGUILayout.EndHorizontal();
+ return result;
+ }
+ }
+
+}
diff --git a/Assets/Oculus/Platform/Editor/GUIHelper.cs.meta b/Assets/Oculus/Platform/Editor/GUIHelper.cs.meta
new file mode 100644
index 0000000..dc8230c
--- /dev/null
+++ b/Assets/Oculus/Platform/Editor/GUIHelper.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 19bb2c637ba6e9c459e3db36b2ec10c3
+timeCreated: 1523486797
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Editor/OculusPlatformSettingsEditor.cs b/Assets/Oculus/Platform/Editor/OculusPlatformSettingsEditor.cs
new file mode 100644
index 0000000..c13517b
--- /dev/null
+++ b/Assets/Oculus/Platform/Editor/OculusPlatformSettingsEditor.cs
@@ -0,0 +1,251 @@
+namespace Oculus.Platform
+{
+ using System;
+ using UnityEditor;
+ using UnityEngine;
+
+ // This classes implements a UI to edit the PlatformSettings class.
+ // The UI is accessible from a the menu bar via: Oculus Platform -> Edit Settings
+ [CustomEditor(typeof(PlatformSettings))]
+ public class OculusPlatformSettingsEditor : Editor
+ {
+ private bool isUnityEditorSettingsExpanded;
+ private bool isBuildSettingsExpanded;
+
+ private WWW getAccessTokenRequest;
+
+ private void OnEnable()
+ {
+ isUnityEditorSettingsExpanded = PlatformSettings.UseStandalonePlatform;
+#if UNITY_ANDROID
+ isBuildSettingsExpanded = true;
+#else
+ isBuildSettingsExpanded = false;
+#endif
+ }
+
+ [UnityEditor.MenuItem("Oculus Platform/Edit Settings")]
+ public static void Edit()
+ {
+ UnityEditor.Selection.activeObject = PlatformSettings.Instance;
+ }
+
+ public override void OnInspectorGUI()
+ {
+ //
+ // Application IDs section
+ //
+ GUIContent riftAppIDLabel = new GUIContent("Oculus Rift App Id [?]", "This AppID will be used when building to the Windows target.");
+ GUIContent gearAppIDLabel = new GUIContent("Gear VR App Id [?]", "This AppID will be used when building to the Android target");
+ PlatformSettings.AppID = MakeTextBox(riftAppIDLabel, PlatformSettings.AppID);
+ PlatformSettings.MobileAppID = MakeTextBox(gearAppIDLabel, PlatformSettings.MobileAppID);
+
+ if (GUILayout.Button("Create / Find your app on https://dashboard.oculus.com"))
+ {
+ UnityEngine.Application.OpenURL("https://dashboard.oculus.com/");
+ }
+
+#if UNITY_ANDROID
+ if (String.IsNullOrEmpty(PlatformSettings.MobileAppID))
+ {
+ EditorGUILayout.HelpBox("Please enter a valid Gear VR App ID.", MessageType.Error);
+ }
+ else
+ {
+ var msg = "Configured to connect with App ID " + PlatformSettings.MobileAppID;
+ EditorGUILayout.HelpBox(msg, MessageType.Info);
+ }
+#else
+ if (String.IsNullOrEmpty(PlatformSettings.AppID))
+ {
+ EditorGUILayout.HelpBox("Please enter a valid Oculus Rift App ID.", MessageType.Error);
+ }
+ else
+ {
+ var msg = "Configured to connect with App ID " + PlatformSettings.AppID;
+ EditorGUILayout.HelpBox(msg, MessageType.Info);
+ }
+#endif
+ EditorGUILayout.Separator();
+
+ //
+ // Unity Editor Settings section
+ //
+ isUnityEditorSettingsExpanded = EditorGUILayout.Foldout(isUnityEditorSettingsExpanded, "Unity Editor Settings");
+ if (isUnityEditorSettingsExpanded)
+ {
+ GUIHelper.HInset(6, () =>
+ {
+ bool HasTestAccessToken = !String.IsNullOrEmpty(StandalonePlatformSettings.OculusPlatformTestUserAccessToken);
+ if (PlatformSettings.UseStandalonePlatform)
+ {
+ if (!HasTestAccessToken &&
+ (String.IsNullOrEmpty(StandalonePlatformSettings.OculusPlatformTestUserEmail) ||
+ String.IsNullOrEmpty(StandalonePlatformSettings.OculusPlatformTestUserPassword)))
+ {
+ EditorGUILayout.HelpBox("Please enter a valid user credentials.", MessageType.Error);
+ }
+ else
+ {
+ var msg = "The Unity editor will use the supplied test user credentials and operate in standalone mode. Some user data will be mocked.";
+ EditorGUILayout.HelpBox(msg, MessageType.Info);
+ }
+ }
+ else
+ {
+ var msg = "The Unity editor will use the user credentials from the Oculus application.";
+ EditorGUILayout.HelpBox(msg, MessageType.Info);
+ }
+
+ var useStandaloneLabel = "Use Standalone Platform [?]";
+ var useStandaloneHint = "If this is checked your app will use a debug platform with the User info below. "
+ + "Otherwise your app will connect to the Oculus Platform. This setting only applies to the Unity Editor";
+ PlatformSettings.UseStandalonePlatform =
+ MakeToggle(new GUIContent(useStandaloneLabel, useStandaloneHint), PlatformSettings.UseStandalonePlatform);
+
+ GUI.enabled = PlatformSettings.UseStandalonePlatform;
+
+ if (!HasTestAccessToken)
+ {
+ var emailLabel = "Test User Email: ";
+ var emailHint = "Test users can be configured at " +
+ "https://dashboard.oculus.com/organizations//testusers " +
+ "however any valid Oculus account email may be used.";
+ StandalonePlatformSettings.OculusPlatformTestUserEmail =
+ MakeTextBox(new GUIContent(emailLabel, emailHint), StandalonePlatformSettings.OculusPlatformTestUserEmail);
+
+ var passwdLabel = "Test User Password: ";
+ var passwdHint = "Password associated with the email address.";
+ StandalonePlatformSettings.OculusPlatformTestUserPassword =
+ MakePasswordBox(new GUIContent(passwdLabel, passwdHint), StandalonePlatformSettings.OculusPlatformTestUserPassword);
+
+ var isLoggingIn = (getAccessTokenRequest != null);
+ var loginLabel = (!isLoggingIn) ? "Login" : "Logging in...";
+
+ GUI.enabled = !isLoggingIn;
+ if (GUILayout.Button(loginLabel))
+ {
+ WWWForm form = new WWWForm();
+ var headers = form.headers;
+ headers.Add("Authorization", "Bearer OC|1141595335965881|");
+ form.AddField("email", StandalonePlatformSettings.OculusPlatformTestUserEmail);
+ form.AddField("password", StandalonePlatformSettings.OculusPlatformTestUserPassword);
+
+ // Start the WWW request to get the access token
+ getAccessTokenRequest = new WWW("https://graph.oculus.com/login", form.data, headers);
+ EditorApplication.update += GetAccessToken;
+ }
+ GUI.enabled = true;
+ }
+ else
+ {
+ var loggedInMsg = "Currently using the credentials associated with " + StandalonePlatformSettings.OculusPlatformTestUserEmail;
+ EditorGUILayout.HelpBox(loggedInMsg, MessageType.Info);
+
+ var logoutLabel = "Clear Credentials";
+
+ if (GUILayout.Button(logoutLabel))
+ {
+ StandalonePlatformSettings.OculusPlatformTestUserAccessToken = "";
+ }
+ }
+
+ GUI.enabled = true;
+ });
+ }
+ EditorGUILayout.Separator();
+
+ //
+ // Build Settings section
+ //
+ isBuildSettingsExpanded = EditorGUILayout.Foldout(isBuildSettingsExpanded, "Build Settings");
+ if (isBuildSettingsExpanded)
+ {
+ GUIHelper.HInset(6, () => {
+ if (!PlayerSettings.virtualRealitySupported)
+ {
+ EditorGUILayout.HelpBox("VR Support isn't enabled in the Player Settings", MessageType.Warning);
+ }
+ else
+ {
+ EditorGUILayout.HelpBox("VR Support is enabled", MessageType.Info);
+ }
+
+ PlayerSettings.virtualRealitySupported = MakeToggle(new GUIContent("Virtual Reality Support"), PlayerSettings.virtualRealitySupported);
+ PlayerSettings.bundleVersion = MakeTextBox(new GUIContent("Bundle Version"), PlayerSettings.bundleVersion);
+#if UNITY_5_3 || UNITY_5_4 || UNITY_5_5
+ PlayerSettings.bundleIdentifier = MakeTextBox(new GUIContent("Bundle Identifier"), PlayerSettings.bundleIdentifier);
+#else
+ BuildTargetGroup buildTargetGroup = EditorUserBuildSettings.selectedBuildTargetGroup;
+ PlayerSettings.SetApplicationIdentifier(
+ buildTargetGroup,
+ MakeTextBox(
+ new GUIContent("Bundle Identifier"),
+ PlayerSettings.GetApplicationIdentifier(buildTargetGroup)));
+#endif
+ });
+ }
+ EditorGUILayout.Separator();
+ }
+
+ // Asyncronously fetch the access token with the given credentials
+ private void GetAccessToken()
+ {
+ if (getAccessTokenRequest != null && getAccessTokenRequest.isDone)
+ {
+
+ // Clear the password
+ StandalonePlatformSettings.OculusPlatformTestUserPassword = "";
+
+ if (String.IsNullOrEmpty(getAccessTokenRequest.error))
+ {
+ var Response = JsonUtility.FromJson(getAccessTokenRequest.text);
+ StandalonePlatformSettings.OculusPlatformTestUserAccessToken = Response.access_token;
+ }
+
+ GUI.changed = true;
+ EditorApplication.update -= GetAccessToken;
+ getAccessTokenRequest = null;
+ }
+ }
+
+ private string MakeTextBox(GUIContent label, string variable)
+ {
+ return GUIHelper.MakeControlWithLabel(label, () => {
+ GUI.changed = false;
+ var result = EditorGUILayout.TextField(variable);
+ SetDirtyOnGUIChange();
+ return result;
+ });
+ }
+ private string MakePasswordBox(GUIContent label, string variable)
+ {
+ return GUIHelper.MakeControlWithLabel(label, () => {
+ GUI.changed = false;
+ var result = EditorGUILayout.PasswordField(variable);
+ SetDirtyOnGUIChange();
+ return result;
+ });
+ }
+
+
+ private bool MakeToggle(GUIContent label, bool variable)
+ {
+ return GUIHelper.MakeControlWithLabel(label, () => {
+ GUI.changed = false;
+ var result = EditorGUILayout.Toggle(variable);
+ SetDirtyOnGUIChange();
+ return result;
+ });
+ }
+
+ private void SetDirtyOnGUIChange()
+ {
+ if (GUI.changed)
+ {
+ EditorUtility.SetDirty(PlatformSettings.Instance);
+ GUI.changed = false;
+ }
+ }
+ }
+}
diff --git a/Assets/Oculus/Platform/Editor/OculusPlatformSettingsEditor.cs.meta b/Assets/Oculus/Platform/Editor/OculusPlatformSettingsEditor.cs.meta
new file mode 100644
index 0000000..2b830ab
--- /dev/null
+++ b/Assets/Oculus/Platform/Editor/OculusPlatformSettingsEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 03780432f190e734dba71a2337880cdb
+timeCreated: 1523486796
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Editor/OculusStandalonePlatformResponse.cs b/Assets/Oculus/Platform/Editor/OculusStandalonePlatformResponse.cs
new file mode 100644
index 0000000..0ab1c46
--- /dev/null
+++ b/Assets/Oculus/Platform/Editor/OculusStandalonePlatformResponse.cs
@@ -0,0 +1,10 @@
+namespace Oculus.Platform
+{
+ using System;
+
+ [Serializable]
+ public sealed class OculusStandalonePlatformResponse
+ {
+ public string access_token;
+ }
+}
diff --git a/Assets/Oculus/Platform/Editor/OculusStandalonePlatformResponse.cs.meta b/Assets/Oculus/Platform/Editor/OculusStandalonePlatformResponse.cs.meta
new file mode 100644
index 0000000..956ad1a
--- /dev/null
+++ b/Assets/Oculus/Platform/Editor/OculusStandalonePlatformResponse.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 81f0418e197774a4e8d643b56923cb90
+timeCreated: 1523486799
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Plugins.meta b/Assets/Oculus/Platform/Plugins.meta
new file mode 100644
index 0000000..adaf367
--- /dev/null
+++ b/Assets/Oculus/Platform/Plugins.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: e72147a7ff1b1834884902389de3ceaa
+folderAsset: yes
+timeCreated: 1522867156
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Plugins/Android32.meta b/Assets/Oculus/Platform/Plugins/Android32.meta
new file mode 100644
index 0000000..8e297ae
--- /dev/null
+++ b/Assets/Oculus/Platform/Plugins/Android32.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 28b08062056958243b2a1fc197e3e492
+folderAsset: yes
+timeCreated: 1522867161
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Plugins/Android32/libovrplatformloader.so b/Assets/Oculus/Platform/Plugins/Android32/libovrplatformloader.so
new file mode 100644
index 0000000..173e501
Binary files /dev/null and b/Assets/Oculus/Platform/Plugins/Android32/libovrplatformloader.so differ
diff --git a/Assets/Oculus/Platform/Plugins/Android32/libovrplatformloader.so.meta b/Assets/Oculus/Platform/Plugins/Android32/libovrplatformloader.so.meta
new file mode 100644
index 0000000..deee739
--- /dev/null
+++ b/Assets/Oculus/Platform/Plugins/Android32/libovrplatformloader.so.meta
@@ -0,0 +1,34 @@
+fileFormatVersion: 2
+guid: 32f3938b889ed054faaaeb5cdf110208
+timeCreated: 1533910673
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ Android: Android
+ second:
+ enabled: 1
+ settings:
+ CPU: ARMv7
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Plugins/MacOSX.meta b/Assets/Oculus/Platform/Plugins/MacOSX.meta
new file mode 100644
index 0000000..246cf47
--- /dev/null
+++ b/Assets/Oculus/Platform/Plugins/MacOSX.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: cbf91bf2744b48c4baafc1677856a917
+folderAsset: yes
+timeCreated: 1520037586
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle.meta b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle.meta
new file mode 100644
index 0000000..7eef38a
--- /dev/null
+++ b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle.meta
@@ -0,0 +1,109 @@
+fileFormatVersion: 2
+guid: 5c42a6ff47d7e214ebe1680db3ea6170
+folderAsset: yes
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ - first:
+ '': Any
+ second:
+ enabled: 0
+ settings:
+ Exclude Android: 1
+ Exclude Editor: 0
+ Exclude Linux: 1
+ Exclude Linux64: 1
+ Exclude LinuxUniversal: 1
+ Exclude OSXIntel: 0
+ Exclude OSXIntel64: 0
+ Exclude OSXUniversal: 0
+ Exclude Win: 1
+ Exclude Win64: 1
+ - first:
+ '': Editor
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ OS: OSX
+ - first:
+ Android: Android
+ second:
+ enabled: 0
+ settings:
+ CPU: ARMv7
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ DefaultValueInitialized: true
+ OS: OSX
+ - first:
+ Facebook: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ - first:
+ Facebook: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: Linux
+ second:
+ enabled: 0
+ settings:
+ CPU: x86
+ - first:
+ Standalone: Linux64
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ - first:
+ Standalone: OSXIntel
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: OSXIntel64
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents.meta b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents.meta
new file mode 100644
index 0000000..c8635ae
--- /dev/null
+++ b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 86ca9bf6b12d41d4a94a1afe0d75df38
+folderAsset: yes
+timeCreated: 1536799186
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Info.plist b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Info.plist
new file mode 100644
index 0000000..e073d60
Binary files /dev/null and b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Info.plist differ
diff --git a/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Info.plist.meta b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Info.plist.meta
new file mode 100644
index 0000000..0b4571b
--- /dev/null
+++ b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Info.plist.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 858b96d02f6d8da4ab608efcad6762a9
+timeCreated: 1533910657
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/MacOS.meta b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/MacOS.meta
new file mode 100644
index 0000000..c4cc96c
--- /dev/null
+++ b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/MacOS.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: d48b2a6e1c9cc2c4ca14a0ece5ec41c2
+folderAsset: yes
+timeCreated: 1536799186
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/MacOS/ovrplatform b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/MacOS/ovrplatform
new file mode 100644
index 0000000..7752645
Binary files /dev/null and b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/MacOS/ovrplatform differ
diff --git a/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/MacOS/ovrplatform.meta b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/MacOS/ovrplatform.meta
new file mode 100644
index 0000000..a339eea
--- /dev/null
+++ b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/MacOS/ovrplatform.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 13f451d276fc22e4bb323736aaf3031b
+timeCreated: 1533910657
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/PkgInfo b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/PkgInfo
new file mode 100644
index 0000000..6492c76
--- /dev/null
+++ b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/PkgInfo
@@ -0,0 +1 @@
+APPLWRUN
diff --git a/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/PkgInfo.meta b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/PkgInfo.meta
new file mode 100644
index 0000000..82c0428
--- /dev/null
+++ b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/PkgInfo.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 415b641ea40a9ac4d9437f7a77a03a06
+timeCreated: 1533910657
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Resources.meta b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Resources.meta
new file mode 100644
index 0000000..d0ca223
--- /dev/null
+++ b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Resources.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 02aaf4ee6ca337e4aa713c195dd164cf
+folderAsset: yes
+timeCreated: 1536799186
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Resources/darwin-x86_64.meta b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Resources/darwin-x86_64.meta
new file mode 100644
index 0000000..3501c22
--- /dev/null
+++ b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Resources/darwin-x86_64.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: be9385f891582c94887c497d6db87428
+folderAsset: yes
+timeCreated: 1536799186
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Resources/darwin-x86_64/liboculus_p2p.dylib b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Resources/darwin-x86_64/liboculus_p2p.dylib
new file mode 100644
index 0000000..78b3b62
Binary files /dev/null and b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Resources/darwin-x86_64/liboculus_p2p.dylib differ
diff --git a/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Resources/darwin-x86_64/liboculus_p2p.dylib.meta b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Resources/darwin-x86_64/liboculus_p2p.dylib.meta
new file mode 100644
index 0000000..42b9dd3
--- /dev/null
+++ b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Resources/darwin-x86_64/liboculus_p2p.dylib.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d10cf30c392aad845855ae98b1bdbce8
+timeCreated: 1533910657
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/_CodeSignature.meta b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/_CodeSignature.meta
new file mode 100644
index 0000000..9fbaaab
--- /dev/null
+++ b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/_CodeSignature.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 159aa4d8c7a47b04eafa4b8d7b27cd93
+folderAsset: yes
+timeCreated: 1536799186
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/_CodeSignature/CodeResources b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/_CodeSignature/CodeResources
new file mode 100644
index 0000000..8b76006
--- /dev/null
+++ b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,128 @@
+
+
+
+
+ files
+
+ Resources/darwin-x86_64/liboculus_p2p.dylib
+
+ QLqWrFkjKvpYBdXZLLjN1SP9rdE=
+
+
+ files2
+
+ Resources/darwin-x86_64/liboculus_p2p.dylib
+
+ hash2
+
+ 0cFSOY1JRQxYH8BXxfQpCWxuZXUcea92du8tjeNOJCg=
+
+
+
+ rules
+
+ ^Resources/
+
+ ^Resources/.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^Resources/.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Resources/Base\.lproj/
+
+ weight
+ 1010
+
+ ^version.plist$
+
+
+ rules2
+
+ .*\.dSYM($|/)
+
+ weight
+ 11
+
+ ^(.*/)?\.DS_Store$
+
+ omit
+
+ weight
+ 2000
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 10
+
+ ^.*
+
+ ^Info\.plist$
+
+ omit
+
+ weight
+ 20
+
+ ^PkgInfo$
+
+ omit
+
+ weight
+ 20
+
+ ^Resources/
+
+ weight
+ 20
+
+ ^Resources/.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^Resources/.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Resources/Base\.lproj/
+
+ weight
+ 1010
+
+ ^[^/]+$
+
+ nested
+
+ weight
+ 10
+
+ ^embedded\.provisionprofile$
+
+ weight
+ 20
+
+ ^version\.plist$
+
+ weight
+ 20
+
+
+
+
diff --git a/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/_CodeSignature/CodeResources.meta b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/_CodeSignature/CodeResources.meta
new file mode 100644
index 0000000..ce17590
--- /dev/null
+++ b/Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/_CodeSignature/CodeResources.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9d7ca10cc65a14d4883ae33260494948
+timeCreated: 1533910657
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts.meta b/Assets/Oculus/Platform/Scripts.meta
new file mode 100644
index 0000000..c0d791d
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 06dc35cc5b7e7eb4ca0b52e7a0bea56d
+folderAsset: yes
+timeCreated: 1520037586
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/AbuseReportOptions.cs b/Assets/Oculus/Platform/Scripts/AbuseReportOptions.cs
new file mode 100644
index 0000000..85f5812
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/AbuseReportOptions.cs
@@ -0,0 +1,37 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+namespace Oculus.Platform
+{
+ using System;
+ using System.Collections;
+ using Oculus.Platform.Models;
+ using System.Collections.Generic;
+ using UnityEngine;
+
+ public class AbuseReportOptions {
+
+ public AbuseReportOptions() {
+ Handle = CAPI.ovr_AbuseReportOptions_Create();
+ }
+
+ public void SetPreventPeopleChooser(bool value) {
+ CAPI.ovr_AbuseReportOptions_SetPreventPeopleChooser(Handle, value);
+ }
+
+ public void SetReportType(AbuseReportType value) {
+ CAPI.ovr_AbuseReportOptions_SetReportType(Handle, value);
+ }
+
+
+ // For passing to native C
+ public static explicit operator IntPtr(AbuseReportOptions options) {
+ return options != null ? options.Handle : IntPtr.Zero;
+ }
+
+ ~AbuseReportOptions() {
+ CAPI.ovr_AbuseReportOptions_Destroy(Handle);
+ }
+
+ IntPtr Handle;
+ }
+}
diff --git a/Assets/Oculus/Platform/Scripts/AbuseReportOptions.cs.meta b/Assets/Oculus/Platform/Scripts/AbuseReportOptions.cs.meta
new file mode 100644
index 0000000..0832145
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/AbuseReportOptions.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 0645da8344fc475469d13a6494437f8e
+timeCreated: 1533910660
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/AbuseReportType.cs b/Assets/Oculus/Platform/Scripts/AbuseReportType.cs
new file mode 100644
index 0000000..945d18f
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/AbuseReportType.cs
@@ -0,0 +1,21 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+namespace Oculus.Platform
+{
+
+ using Description = System.ComponentModel.DescriptionAttribute;
+
+ public enum AbuseReportType : int
+ {
+ [Description("UNKNOWN")]
+ Unknown,
+
+ [Description("OBJECT")]
+ Object,
+
+ [Description("USER")]
+ User,
+
+ }
+
+}
diff --git a/Assets/Oculus/Platform/Scripts/AbuseReportType.cs.meta b/Assets/Oculus/Platform/Scripts/AbuseReportType.cs.meta
new file mode 100644
index 0000000..6fce596
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/AbuseReportType.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c69cf9c4f527f9e4a8dc49125afacc7b
+timeCreated: 1533910663
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/AchievementType.cs b/Assets/Oculus/Platform/Scripts/AchievementType.cs
new file mode 100644
index 0000000..208f2a5
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/AchievementType.cs
@@ -0,0 +1,24 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+namespace Oculus.Platform
+{
+
+ using Description = System.ComponentModel.DescriptionAttribute;
+
+ public enum AchievementType : int
+ {
+ [Description("UNKNOWN")]
+ Unknown,
+
+ [Description("SIMPLE")]
+ Simple,
+
+ [Description("BITFIELD")]
+ Bitfield,
+
+ [Description("COUNT")]
+ Count,
+
+ }
+
+}
diff --git a/Assets/Oculus/Platform/Scripts/AchievementType.cs.meta b/Assets/Oculus/Platform/Scripts/AchievementType.cs.meta
new file mode 100644
index 0000000..be5b115
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/AchievementType.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 42d96355ad5dd4b4eab18452dbd62fa7
+timeCreated: 1523486798
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/AndroidPlatform.cs b/Assets/Oculus/Platform/Scripts/AndroidPlatform.cs
new file mode 100644
index 0000000..402199a
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/AndroidPlatform.cs
@@ -0,0 +1,35 @@
+namespace Oculus.Platform
+{
+ using UnityEngine;
+ using System.Collections;
+ using System;
+
+ public class AndroidPlatform
+ {
+ public bool Initialize(string appId)
+ {
+#if UNITY_ANDROID
+ if(String.IsNullOrEmpty(appId))
+ {
+ throw new UnityException("AppID must not be null or empty");
+ }
+ return CAPI.ovr_UnityInitWrapper(appId);
+#else
+ return false;
+#endif
+ }
+
+ public Request AsyncInitialize(string appId)
+ {
+#if UNITY_ANDROID
+ if(String.IsNullOrEmpty(appId))
+ {
+ throw new UnityException("AppID must not be null or empty");
+ }
+ return new Request(CAPI.ovr_UnityInitWrapperAsynchronous(appId));
+#else
+ return new Request(0);
+#endif
+ }
+ }
+}
diff --git a/Assets/Oculus/Platform/Scripts/AndroidPlatform.cs.meta b/Assets/Oculus/Platform/Scripts/AndroidPlatform.cs.meta
new file mode 100644
index 0000000..0227208
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/AndroidPlatform.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 7293b4a3c3806ad448e3b421baf984b1
+timeCreated: 1523486799
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/ApplicationOptions.cs b/Assets/Oculus/Platform/Scripts/ApplicationOptions.cs
new file mode 100644
index 0000000..9531390
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/ApplicationOptions.cs
@@ -0,0 +1,33 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+namespace Oculus.Platform
+{
+ using System;
+ using System.Collections;
+ using Oculus.Platform.Models;
+ using System.Collections.Generic;
+ using UnityEngine;
+
+ public class ApplicationOptions {
+
+ public ApplicationOptions() {
+ Handle = CAPI.ovr_ApplicationOptions_Create();
+ }
+
+ public void SetDeeplinkMessage(string value) {
+ CAPI.ovr_ApplicationOptions_SetDeeplinkMessage(Handle, value);
+ }
+
+
+ // For passing to native C
+ public static explicit operator IntPtr(ApplicationOptions options) {
+ return options != null ? options.Handle : IntPtr.Zero;
+ }
+
+ ~ApplicationOptions() {
+ CAPI.ovr_ApplicationOptions_Destroy(Handle);
+ }
+
+ IntPtr Handle;
+ }
+}
diff --git a/Assets/Oculus/Platform/Scripts/ApplicationOptions.cs.meta b/Assets/Oculus/Platform/Scripts/ApplicationOptions.cs.meta
new file mode 100644
index 0000000..771b501
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/ApplicationOptions.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: d089d8a70f920a5469fca1917d5e5122
+timeCreated: 1523486800
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/BufferedAudioStream.cs b/Assets/Oculus/Platform/Scripts/BufferedAudioStream.cs
new file mode 100644
index 0000000..c9d26ca
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/BufferedAudioStream.cs
@@ -0,0 +1,126 @@
+//#define VERBOSE_LOGGING
+using UnityEngine;
+using System.Collections;
+using System;
+
+using Oculus.Platform;
+
+public class BufferedAudioStream {
+ const bool VerboseLogging = false;
+ AudioSource audio;
+
+ float[] audioBuffer;
+ int writePos;
+
+ const float bufferLengthSeconds = 0.25f;
+ const int sampleRate = 48000;
+ const int bufferSize = (int)(sampleRate * bufferLengthSeconds);
+ const float playbackDelayTimeSeconds = 0.05f;
+
+ float playbackDelayRemaining;
+ float remainingBufferTime;
+
+ public BufferedAudioStream(AudioSource audio) {
+ audioBuffer = new float[bufferSize];
+ this.audio = audio;
+
+ audio.loop = true;
+ audio.clip = AudioClip.Create("", bufferSize, 1, sampleRate, false);
+
+ Stop();
+ }
+
+ public void Update () {
+
+ if(remainingBufferTime > 0)
+ {
+#if VERBOSE_LOGGING
+ Debug.Log(string.Format("current time: {0}, remainingBufferTime: {1}", Time.time, remainingBufferTime));
+#endif
+
+ if (!audio.isPlaying && remainingBufferTime > playbackDelayTimeSeconds)
+ {
+ playbackDelayRemaining -= Time.deltaTime;
+ if (playbackDelayRemaining <= 0)
+ {
+#if VERBOSE_LOGGING
+ Debug.Log("Starting playback");
+#endif
+ audio.Play();
+ }
+ }
+
+ if (audio.isPlaying)
+ {
+ remainingBufferTime -= Time.deltaTime;
+ if (remainingBufferTime < 0)
+ {
+ remainingBufferTime = 0;
+ }
+ }
+ }
+
+ if (remainingBufferTime <= 0)
+ {
+ if (audio.isPlaying)
+ {
+ Debug.Log("Buffer empty, stopping " + DateTime.Now);
+ Stop();
+ }
+ else
+ {
+ if (writePos != 0)
+ {
+ Debug.LogError("writePos non zero while not playing, how did this happen?");
+ }
+ }
+ }
+ }
+
+ void Stop()
+ {
+ audio.Stop();
+ audio.time = 0;
+ writePos = 0;
+ playbackDelayRemaining = playbackDelayTimeSeconds;
+ }
+
+ public void AddData(float[] samples) {
+ int remainingWriteLength = samples.Length;
+
+ if(writePos > audioBuffer.Length) {
+ throw new Exception();
+ }
+
+ do {
+ int writeLength = remainingWriteLength;
+ int remainingSpace = audioBuffer.Length - writePos;
+
+ if(writeLength > remainingSpace) {
+ writeLength = remainingSpace;
+ }
+
+ Array.Copy(samples, 0, audioBuffer, writePos, writeLength);
+
+ remainingWriteLength -= writeLength;
+ writePos += writeLength;
+ if(writePos > audioBuffer.Length) {
+ throw new Exception();
+ }
+ if(writePos == audioBuffer.Length) {
+ writePos = 0;
+ }
+ } while(remainingWriteLength > 0);
+
+#if VERBOSE_LOGGING
+ float prev = remainingBufferTime;
+#endif
+ remainingBufferTime += (float)samples.Length / sampleRate;
+#if VERBOSE_LOGGING
+ Debug.Log(string.Format("previous remaining: {0}, new remaining: {1}, added {2} samples", prev, remainingBufferTime, samples.Length));
+#endif
+ audio.clip.SetData(audioBuffer, 0);
+ }
+
+
+}
diff --git a/Assets/Oculus/Platform/Scripts/BufferedAudioStream.cs.meta b/Assets/Oculus/Platform/Scripts/BufferedAudioStream.cs.meta
new file mode 100644
index 0000000..5869ab2
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/BufferedAudioStream.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f6d1f538558efdb42ae724d9bb36e538
+timeCreated: 1523486801
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/CAPI.cs b/Assets/Oculus/Platform/Scripts/CAPI.cs
new file mode 100644
index 0000000..1fc68ba
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/CAPI.cs
@@ -0,0 +1,2930 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+using UnityEngine;
+using System;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using System.Text;
+
+#pragma warning disable 414
+namespace Oculus.Platform
+{
+ public class CAPI
+ {
+#if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN
+ #if UNITY_64 || UNITY_EDITOR_64
+ public const string DLL_NAME = "LibOVRPlatform64_1";
+ #else
+ public const string DLL_NAME = "LibOVRPlatform32_1";
+ #endif
+#elif UNITY_EDITOR || UNITY_EDITOR_64
+ public const string DLL_NAME = "ovrplatform";
+#else
+ public const string DLL_NAME = "ovrplatformloader";
+#endif
+
+ private static UTF8Encoding nativeStringEncoding = new UTF8Encoding(false);
+
+ [StructLayout(LayoutKind.Sequential)]
+ public struct ovrKeyValuePair {
+ public ovrKeyValuePair(string key, string value) {
+ key_ = key;
+ valueType_ = KeyValuePairType.String;
+ stringValue_ = value;
+
+ intValue_ = 0;
+ doubleValue_ = 0.0;
+ }
+
+ public ovrKeyValuePair(string key, int value) {
+ key_ = key;
+ valueType_ = KeyValuePairType.Int;
+ intValue_ = value;
+
+ stringValue_ = null;
+ doubleValue_ = 0.0;
+ }
+
+ public ovrKeyValuePair(string key, double value) {
+ key_ = key;
+ valueType_ = KeyValuePairType.Double;
+ doubleValue_ = value;
+
+ stringValue_ = null;
+ intValue_ = 0;
+ }
+
+ public string key_;
+ KeyValuePairType valueType_;
+
+ public string stringValue_;
+ public int intValue_;
+ public double doubleValue_;
+ };
+
+ public static IntPtr ArrayOfStructsToIntPtr(Array ar)
+ {
+ int totalSize = 0;
+ for(int i=0; i dict)
+ {
+ if(dict == null || dict.Count == 0)
+ {
+ return null;
+ }
+
+ var nativeCustomData = new CAPI.ovrKeyValuePair[dict.Count];
+
+ int i = 0;
+ foreach(var item in dict)
+ {
+ if(item.Value.GetType() == typeof(int))
+ {
+ nativeCustomData[i] = new CAPI.ovrKeyValuePair(item.Key, (int)item.Value);
+ }
+ else if(item.Value.GetType() == typeof(string))
+ {
+ nativeCustomData[i] = new CAPI.ovrKeyValuePair(item.Key, (string)item.Value);
+ }
+ else if(item.Value.GetType() == typeof(double))
+ {
+ nativeCustomData[i] = new CAPI.ovrKeyValuePair(item.Key, (double)item.Value);
+ }
+ else
+ {
+ throw new Exception("Only int, double or string are allowed types in CustomQuery.data");
+ }
+ i++;
+ }
+ return nativeCustomData;
+ }
+
+ public static byte[] IntPtrToByteArray(IntPtr data, ulong size)
+ {
+ byte[] outArray = new byte[size];
+ Marshal.Copy(data, outArray, 0, (int)size);
+ return outArray;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ public struct ovrMatchmakingCriterion {
+ public ovrMatchmakingCriterion(string key, MatchmakingCriterionImportance importance)
+ {
+ key_ = key;
+ importance_ = importance;
+
+ parameterArray = IntPtr.Zero;
+ parameterArrayCount = 0;
+ }
+
+ public string key_;
+ public MatchmakingCriterionImportance importance_;
+
+ public IntPtr parameterArray;
+ public uint parameterArrayCount;
+ };
+
+ [StructLayout(LayoutKind.Sequential)]
+ public struct ovrMatchmakingCustomQueryData {
+ public IntPtr dataArray;
+ public uint dataArrayCount;
+
+ public IntPtr criterionArray;
+ public uint criterionArrayCount;
+ };
+
+ public static Dictionary DataStoreFromNative(IntPtr pointer) {
+ var d = new Dictionary();
+ var size = (int)CAPI.ovr_DataStore_GetNumKeys(pointer);
+ for (var i = 0; i < size; i++) {
+ string key = CAPI.ovr_DataStore_GetKey(pointer, i);
+ d[key] = CAPI.ovr_DataStore_GetValue(pointer, key);
+ }
+ return d;
+ }
+
+ public static string StringFromNative(IntPtr pointer) {
+ if (pointer == IntPtr.Zero) {
+ return null;
+ }
+ var l = GetNativeStringLengthNotIncludingNullTerminator(pointer);
+ var data = new byte[l];
+ Marshal.Copy(pointer, data, 0, l);
+ return nativeStringEncoding.GetString(data);
+ }
+
+ public static int GetNativeStringLengthNotIncludingNullTerminator(IntPtr pointer) {
+ var l = 0;
+ while (true) {
+ if (Marshal.ReadByte(pointer, l) == 0) {
+ return l;
+ }
+ l++;
+ }
+ }
+
+ public static DateTime DateTimeFromNative(ulong seconds_since_the_one_true_epoch) {
+ var dt = new DateTime(1970, 1, 1, 0, 0, 0, 0);
+ return dt.AddSeconds(seconds_since_the_one_true_epoch).ToLocalTime();
+ }
+
+ public static byte[] BlobFromNative(uint size, IntPtr pointer) {
+ var a = new byte[(int)size];
+ for (int i = 0; i < (int)size; i++) {
+ a[i] = Marshal.ReadByte(pointer, i);
+ }
+ return a;
+ }
+
+ public static byte[] FiledataFromNative(uint size, IntPtr pointer) {
+ var data = new byte[(int)size];
+ Marshal.Copy(pointer, data, 0, (int)size);
+ return data;
+ }
+
+ public static IntPtr StringToNative(string s) {
+ if (s == null) {
+ throw new Exception("StringFromNative: null argument");
+ }
+ var l = nativeStringEncoding.GetByteCount(s);
+ var data = new byte[l + 1];
+ nativeStringEncoding.GetBytes(s, 0, s.Length, data, 0);
+ var pointer = Marshal.AllocCoTaskMem(l + 1);
+ Marshal.Copy(data, 0, pointer, l + 1);
+ return pointer;
+ }
+
+ // Initialization
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_UnityInitWrapper(string appId);
+
+ // Initializes just the global variables to use the Unity api without calling the init logic
+ [DllImport(DLL_NAME, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovr_UnityInitGlobals(IntPtr loggingCB);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_UnityInitWrapperAsynchronous(string appId);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_UnityInitWrapperStandalone(string accessToken, IntPtr loggingCB);
+
+ [StructLayout(LayoutKind.Sequential)]
+ public struct OculusInitParams
+ {
+ public int sType;
+ public string email;
+ public string password;
+ public UInt64 appId;
+ public string uriPrefixOverride;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention = CallingConvention.Cdecl)]
+ public static extern ulong ovr_Platform_InitializeStandaloneOculus(ref OculusInitParams init);
+
+ [DllImport(DLL_NAME, CallingConvention = CallingConvention.Cdecl)]
+ public static extern ulong ovr_PlatformInitializeWithAccessToken(UInt64 appId, string accessToken);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_UnityInitWrapperWindows(string appId, IntPtr loggingCB);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_UnityInitWrapperWindowsAsynchronous(string appId, IntPtr loggingCB);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_SetDeveloperAccessToken(string accessToken);
+
+ public static string ovr_GetLoggedInUserLocale() {
+ var result = StringFromNative(ovr_GetLoggedInUserLocale_Native());
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_GetLoggedInUserLocale")]
+ private static extern IntPtr ovr_GetLoggedInUserLocale_Native();
+
+
+ // Message queue access
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_PopMessage();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_FreeMessage(IntPtr message);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_NetworkingPeer_GetSendPolicy(IntPtr networkingPeer);
+
+
+ // VOIP
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Voip_CreateEncoder();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Voip_DestroyEncoder(IntPtr encoder);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Voip_CreateDecoder();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Voip_DestroyDecoder(IntPtr decoder);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_VoipDecoder_Decode(IntPtr obj, byte[] compressedData, ulong compressedSize);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Microphone_Create();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Microphone_Destroy(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Voip_SetSystemVoipPassthrough(bool passthrough);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Voip_SetSystemVoipMicrophoneMuted(VoipMuteState muted);
+
+ // Misc
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_UnityResetTestPlatform();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_HTTP_GetWithMessageType(string url, int messageType);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_CrashApplication();
+
+ public const int VoipFilterBufferSize = 480;
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ public delegate void FilterCallback([MarshalAs(UnmanagedType.LPArray, SizeConst = VoipFilterBufferSize), In, Out] short[] pcmData, UIntPtr pcmDataLength, int frequency, int numChannels);
+
+ [DllImport(DLL_NAME, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovr_Voip_SetMicrophoneFilterCallback(FilterCallback cb);
+
+ [DllImport(DLL_NAME, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void ovr_Voip_SetMicrophoneFilterCallbackWithFixedSizeBuffer(FilterCallback cb, UIntPtr bufferSizeElements);
+
+
+ // Logging
+
+ public static void LogNewEvent(string eventName, Dictionary values) {
+ var eventNameNative = StringToNative(eventName);
+
+ var count = values == null ? 0 : values.Count;
+
+ IntPtr[] valuesNative = new IntPtr[count * 2];
+
+ if (count > 0) {
+ int i = 0;
+ foreach(var item in values) {
+ valuesNative[i * 2 + 0] = StringToNative(item.Key);
+ valuesNative[i * 2 + 1] = StringToNative(item.Value);
+ i++;
+ }
+ }
+
+ ovr_Log_NewEvent(eventNameNative, valuesNative, (UIntPtr)count);
+
+ Marshal.FreeCoTaskMem(eventNameNative);
+ foreach (var nativeItem in valuesNative) {
+ Marshal.FreeCoTaskMem(nativeItem);
+ }
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Log_NewEvent(IntPtr eventName, IntPtr[] values, UIntPtr length);
+
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_ApplicationLifecycle_GetLaunchDetails();
+
+ public static ulong ovr_HTTP_StartTransfer(string url, ovrKeyValuePair[] headers) {
+ IntPtr url_native = StringToNative(url);
+ UIntPtr headers_length = (UIntPtr)headers.Length;
+ var result = (ovr_HTTP_StartTransfer_Native(url_native, headers, headers_length));
+ Marshal.FreeCoTaskMem(url_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_HTTP_StartTransfer")]
+ private static extern ulong ovr_HTTP_StartTransfer_Native(IntPtr url, ovrKeyValuePair[] headers, UIntPtr numItems);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_HTTP_Write(ulong transferId, byte[] bytes, UIntPtr length);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_HTTP_WriteEOM(ulong transferId);
+
+ public static string ovr_Message_GetStringForJavascript(IntPtr message) {
+ var result = StringFromNative(ovr_Message_GetStringForJavascript_Native(message));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Message_GetStringForJavascript")]
+ private static extern IntPtr ovr_Message_GetStringForJavascript_Native(IntPtr message);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Net_Accept(UInt64 peerID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_Net_AcceptForCurrentRoom();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Net_Close(UInt64 peerID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Net_CloseForCurrentRoom();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Net_Connect(UInt64 peerID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_Net_IsConnected(UInt64 peerID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Net_Ping(UInt64 peerID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Net_ReadPacket();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_Net_SendPacket(UInt64 userID, UIntPtr length, byte[] bytes, SendPolicy policy);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_Net_SendPacketToCurrentRoom(UIntPtr length, byte[] bytes, SendPolicy policy);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern int ovr_Party_PluginGetSharedMemHandle();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Voip_Accept(UInt64 userID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern VoipDtxState ovr_Voip_GetIsConnectionUsingDtx(UInt64 peerID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern VoipBitrate ovr_Voip_GetLocalBitrate(UInt64 peerID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_Voip_GetOutputBufferMaxSize();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_Voip_GetPCM(UInt64 senderID, Int16[] outputBuffer, UIntPtr outputBufferNumElements);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_Voip_GetPCMFloat(UInt64 senderID, float[] outputBuffer, UIntPtr outputBufferNumElements);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_Voip_GetPCMSize(UInt64 senderID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_Voip_GetPCMWithTimestamp(UInt64 senderID, Int16[] outputBuffer, UIntPtr outputBufferNumElements, UInt32[] timestamp);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_Voip_GetPCMWithTimestampFloat(UInt64 senderID, float[] outputBuffer, UIntPtr outputBufferNumElements, UInt32[] timestamp);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern VoipBitrate ovr_Voip_GetRemoteBitrate(UInt64 peerID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt32 ovr_Voip_GetSyncTimestamp(UInt64 userID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern long ovr_Voip_GetSyncTimestampDifference(UInt32 lhs, UInt32 rhs);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern VoipMuteState ovr_Voip_GetSystemVoipMicrophoneMuted();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern SystemVoipStatus ovr_Voip_GetSystemVoipStatus();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Voip_SetMicrophoneMuted(VoipMuteState state);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Voip_SetNewConnectionOptions(IntPtr voipOptions);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Voip_SetOutputSampleRate(VoipSampleRate rate);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Voip_Start(UInt64 userID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Voip_Stop(UInt64 userID);
+
+ public static ulong ovr_Achievements_AddCount(string name, ulong count) {
+ IntPtr name_native = StringToNative(name);
+ var result = (ovr_Achievements_AddCount_Native(name_native, count));
+ Marshal.FreeCoTaskMem(name_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Achievements_AddCount")]
+ private static extern ulong ovr_Achievements_AddCount_Native(IntPtr name, ulong count);
+
+ public static ulong ovr_Achievements_AddFields(string name, string fields) {
+ IntPtr name_native = StringToNative(name);
+ IntPtr fields_native = StringToNative(fields);
+ var result = (ovr_Achievements_AddFields_Native(name_native, fields_native));
+ Marshal.FreeCoTaskMem(name_native);
+ Marshal.FreeCoTaskMem(fields_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Achievements_AddFields")]
+ private static extern ulong ovr_Achievements_AddFields_Native(IntPtr name, IntPtr fields);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Achievements_GetAllDefinitions();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Achievements_GetAllProgress();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Achievements_GetDefinitionsByName(string[] names, int count);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Achievements_GetProgressByName(string[] names, int count);
+
+ public static ulong ovr_Achievements_Unlock(string name) {
+ IntPtr name_native = StringToNative(name);
+ var result = (ovr_Achievements_Unlock_Native(name_native));
+ Marshal.FreeCoTaskMem(name_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Achievements_Unlock")]
+ private static extern ulong ovr_Achievements_Unlock_Native(IntPtr name);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Application_ExecuteCoordinatedLaunch(ulong appID, ulong roomID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Application_GetInstalledApplications();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Application_GetVersion();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Application_LaunchOtherApp(UInt64 appID, IntPtr deeplink_options);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_ApplicationLifecycle_GetRegisteredPIDs();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_ApplicationLifecycle_GetSessionKey();
+
+ public static ulong ovr_ApplicationLifecycle_RegisterSessionKey(string sessionKey) {
+ IntPtr sessionKey_native = StringToNative(sessionKey);
+ var result = (ovr_ApplicationLifecycle_RegisterSessionKey_Native(sessionKey_native));
+ Marshal.FreeCoTaskMem(sessionKey_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_ApplicationLifecycle_RegisterSessionKey")]
+ private static extern ulong ovr_ApplicationLifecycle_RegisterSessionKey_Native(IntPtr sessionKey);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_AssetFile_Delete(UInt64 assetFileID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_AssetFile_DeleteById(UInt64 assetFileID);
+
+ public static ulong ovr_AssetFile_DeleteByName(string assetFileName) {
+ IntPtr assetFileName_native = StringToNative(assetFileName);
+ var result = (ovr_AssetFile_DeleteByName_Native(assetFileName_native));
+ Marshal.FreeCoTaskMem(assetFileName_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AssetFile_DeleteByName")]
+ private static extern ulong ovr_AssetFile_DeleteByName_Native(IntPtr assetFileName);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_AssetFile_Download(UInt64 assetFileID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_AssetFile_DownloadById(UInt64 assetFileID);
+
+ public static ulong ovr_AssetFile_DownloadByName(string assetFileName) {
+ IntPtr assetFileName_native = StringToNative(assetFileName);
+ var result = (ovr_AssetFile_DownloadByName_Native(assetFileName_native));
+ Marshal.FreeCoTaskMem(assetFileName_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AssetFile_DownloadByName")]
+ private static extern ulong ovr_AssetFile_DownloadByName_Native(IntPtr assetFileName);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_AssetFile_DownloadCancel(UInt64 assetFileID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_AssetFile_DownloadCancelById(UInt64 assetFileID);
+
+ public static ulong ovr_AssetFile_DownloadCancelByName(string assetFileName) {
+ IntPtr assetFileName_native = StringToNative(assetFileName);
+ var result = (ovr_AssetFile_DownloadCancelByName_Native(assetFileName_native));
+ Marshal.FreeCoTaskMem(assetFileName_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AssetFile_DownloadCancelByName")]
+ private static extern ulong ovr_AssetFile_DownloadCancelByName_Native(IntPtr assetFileName);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_AssetFile_GetList();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_AssetFile_Status(UInt64 assetFileID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_AssetFile_StatusById(UInt64 assetFileID);
+
+ public static ulong ovr_AssetFile_StatusByName(string assetFileName) {
+ IntPtr assetFileName_native = StringToNative(assetFileName);
+ var result = (ovr_AssetFile_StatusByName_Native(assetFileName_native));
+ Marshal.FreeCoTaskMem(assetFileName_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AssetFile_StatusByName")]
+ private static extern ulong ovr_AssetFile_StatusByName_Native(IntPtr assetFileName);
+
+ public static ulong ovr_Avatar_UpdateMetaData(string avatarMetaData, string imageFilePath) {
+ IntPtr avatarMetaData_native = StringToNative(avatarMetaData);
+ IntPtr imageFilePath_native = StringToNative(imageFilePath);
+ var result = (ovr_Avatar_UpdateMetaData_Native(avatarMetaData_native, imageFilePath_native));
+ Marshal.FreeCoTaskMem(avatarMetaData_native);
+ Marshal.FreeCoTaskMem(imageFilePath_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Avatar_UpdateMetaData")]
+ private static extern ulong ovr_Avatar_UpdateMetaData_Native(IntPtr avatarMetaData, IntPtr imageFilePath);
+
+ public static ulong ovr_CloudStorage_Delete(string bucket, string key) {
+ IntPtr bucket_native = StringToNative(bucket);
+ IntPtr key_native = StringToNative(key);
+ var result = (ovr_CloudStorage_Delete_Native(bucket_native, key_native));
+ Marshal.FreeCoTaskMem(bucket_native);
+ Marshal.FreeCoTaskMem(key_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorage_Delete")]
+ private static extern ulong ovr_CloudStorage_Delete_Native(IntPtr bucket, IntPtr key);
+
+ public static ulong ovr_CloudStorage_Load(string bucket, string key) {
+ IntPtr bucket_native = StringToNative(bucket);
+ IntPtr key_native = StringToNative(key);
+ var result = (ovr_CloudStorage_Load_Native(bucket_native, key_native));
+ Marshal.FreeCoTaskMem(bucket_native);
+ Marshal.FreeCoTaskMem(key_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorage_Load")]
+ private static extern ulong ovr_CloudStorage_Load_Native(IntPtr bucket, IntPtr key);
+
+ public static ulong ovr_CloudStorage_LoadBucketMetadata(string bucket) {
+ IntPtr bucket_native = StringToNative(bucket);
+ var result = (ovr_CloudStorage_LoadBucketMetadata_Native(bucket_native));
+ Marshal.FreeCoTaskMem(bucket_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorage_LoadBucketMetadata")]
+ private static extern ulong ovr_CloudStorage_LoadBucketMetadata_Native(IntPtr bucket);
+
+ public static ulong ovr_CloudStorage_LoadConflictMetadata(string bucket, string key) {
+ IntPtr bucket_native = StringToNative(bucket);
+ IntPtr key_native = StringToNative(key);
+ var result = (ovr_CloudStorage_LoadConflictMetadata_Native(bucket_native, key_native));
+ Marshal.FreeCoTaskMem(bucket_native);
+ Marshal.FreeCoTaskMem(key_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorage_LoadConflictMetadata")]
+ private static extern ulong ovr_CloudStorage_LoadConflictMetadata_Native(IntPtr bucket, IntPtr key);
+
+ public static ulong ovr_CloudStorage_LoadHandle(string handle) {
+ IntPtr handle_native = StringToNative(handle);
+ var result = (ovr_CloudStorage_LoadHandle_Native(handle_native));
+ Marshal.FreeCoTaskMem(handle_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorage_LoadHandle")]
+ private static extern ulong ovr_CloudStorage_LoadHandle_Native(IntPtr handle);
+
+ public static ulong ovr_CloudStorage_LoadMetadata(string bucket, string key) {
+ IntPtr bucket_native = StringToNative(bucket);
+ IntPtr key_native = StringToNative(key);
+ var result = (ovr_CloudStorage_LoadMetadata_Native(bucket_native, key_native));
+ Marshal.FreeCoTaskMem(bucket_native);
+ Marshal.FreeCoTaskMem(key_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorage_LoadMetadata")]
+ private static extern ulong ovr_CloudStorage_LoadMetadata_Native(IntPtr bucket, IntPtr key);
+
+ public static ulong ovr_CloudStorage_ResolveKeepLocal(string bucket, string key, string remoteHandle) {
+ IntPtr bucket_native = StringToNative(bucket);
+ IntPtr key_native = StringToNative(key);
+ IntPtr remoteHandle_native = StringToNative(remoteHandle);
+ var result = (ovr_CloudStorage_ResolveKeepLocal_Native(bucket_native, key_native, remoteHandle_native));
+ Marshal.FreeCoTaskMem(bucket_native);
+ Marshal.FreeCoTaskMem(key_native);
+ Marshal.FreeCoTaskMem(remoteHandle_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorage_ResolveKeepLocal")]
+ private static extern ulong ovr_CloudStorage_ResolveKeepLocal_Native(IntPtr bucket, IntPtr key, IntPtr remoteHandle);
+
+ public static ulong ovr_CloudStorage_ResolveKeepRemote(string bucket, string key, string remoteHandle) {
+ IntPtr bucket_native = StringToNative(bucket);
+ IntPtr key_native = StringToNative(key);
+ IntPtr remoteHandle_native = StringToNative(remoteHandle);
+ var result = (ovr_CloudStorage_ResolveKeepRemote_Native(bucket_native, key_native, remoteHandle_native));
+ Marshal.FreeCoTaskMem(bucket_native);
+ Marshal.FreeCoTaskMem(key_native);
+ Marshal.FreeCoTaskMem(remoteHandle_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorage_ResolveKeepRemote")]
+ private static extern ulong ovr_CloudStorage_ResolveKeepRemote_Native(IntPtr bucket, IntPtr key, IntPtr remoteHandle);
+
+ public static ulong ovr_CloudStorage_Save(string bucket, string key, byte[] data, uint dataSize, long counter, string extraData) {
+ IntPtr bucket_native = StringToNative(bucket);
+ IntPtr key_native = StringToNative(key);
+ IntPtr extraData_native = StringToNative(extraData);
+ var result = (ovr_CloudStorage_Save_Native(bucket_native, key_native, data, dataSize, counter, extraData_native));
+ Marshal.FreeCoTaskMem(bucket_native);
+ Marshal.FreeCoTaskMem(key_native);
+ Marshal.FreeCoTaskMem(extraData_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorage_Save")]
+ private static extern ulong ovr_CloudStorage_Save_Native(IntPtr bucket, IntPtr key, byte[] data, uint dataSize, long counter, IntPtr extraData);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Entitlement_GetIsViewerEntitled();
+
+ public static ulong ovr_GraphAPI_Get(string url) {
+ IntPtr url_native = StringToNative(url);
+ var result = (ovr_GraphAPI_Get_Native(url_native));
+ Marshal.FreeCoTaskMem(url_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_GraphAPI_Get")]
+ private static extern ulong ovr_GraphAPI_Get_Native(IntPtr url);
+
+ public static ulong ovr_GraphAPI_Post(string url) {
+ IntPtr url_native = StringToNative(url);
+ var result = (ovr_GraphAPI_Post_Native(url_native));
+ Marshal.FreeCoTaskMem(url_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_GraphAPI_Post")]
+ private static extern ulong ovr_GraphAPI_Post_Native(IntPtr url);
+
+ public static ulong ovr_HTTP_Get(string url) {
+ IntPtr url_native = StringToNative(url);
+ var result = (ovr_HTTP_Get_Native(url_native));
+ Marshal.FreeCoTaskMem(url_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_HTTP_Get")]
+ private static extern ulong ovr_HTTP_Get_Native(IntPtr url);
+
+ public static ulong ovr_HTTP_GetToFile(string url, string diskFile) {
+ IntPtr url_native = StringToNative(url);
+ IntPtr diskFile_native = StringToNative(diskFile);
+ var result = (ovr_HTTP_GetToFile_Native(url_native, diskFile_native));
+ Marshal.FreeCoTaskMem(url_native);
+ Marshal.FreeCoTaskMem(diskFile_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_HTTP_GetToFile")]
+ private static extern ulong ovr_HTTP_GetToFile_Native(IntPtr url, IntPtr diskFile);
+
+ public static ulong ovr_HTTP_MultiPartPost(string url, string filepath_param_name, string filepath, string access_token, ovrKeyValuePair[] post_params) {
+ IntPtr url_native = StringToNative(url);
+ IntPtr filepath_param_name_native = StringToNative(filepath_param_name);
+ IntPtr filepath_native = StringToNative(filepath);
+ IntPtr access_token_native = StringToNative(access_token);
+ UIntPtr post_params_length = (UIntPtr)post_params.Length;
+ var result = (ovr_HTTP_MultiPartPost_Native(url_native, filepath_param_name_native, filepath_native, access_token_native, post_params, post_params_length));
+ Marshal.FreeCoTaskMem(url_native);
+ Marshal.FreeCoTaskMem(filepath_param_name_native);
+ Marshal.FreeCoTaskMem(filepath_native);
+ Marshal.FreeCoTaskMem(access_token_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_HTTP_MultiPartPost")]
+ private static extern ulong ovr_HTTP_MultiPartPost_Native(IntPtr url, IntPtr filepath_param_name, IntPtr filepath, IntPtr access_token, ovrKeyValuePair[] post_params, UIntPtr numItems);
+
+ public static ulong ovr_HTTP_Post(string url) {
+ IntPtr url_native = StringToNative(url);
+ var result = (ovr_HTTP_Post_Native(url_native));
+ Marshal.FreeCoTaskMem(url_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_HTTP_Post")]
+ private static extern ulong ovr_HTTP_Post_Native(IntPtr url);
+
+ public static ulong ovr_IAP_ConsumePurchase(string sku) {
+ IntPtr sku_native = StringToNative(sku);
+ var result = (ovr_IAP_ConsumePurchase_Native(sku_native));
+ Marshal.FreeCoTaskMem(sku_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_IAP_ConsumePurchase")]
+ private static extern ulong ovr_IAP_ConsumePurchase_Native(IntPtr sku);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_IAP_GetProductsBySKU(string[] skus, int count);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_IAP_GetViewerPurchases();
+
+ public static ulong ovr_IAP_LaunchCheckoutFlow(string sku) {
+ IntPtr sku_native = StringToNative(sku);
+ var result = (ovr_IAP_LaunchCheckoutFlow_Native(sku_native));
+ Marshal.FreeCoTaskMem(sku_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_IAP_LaunchCheckoutFlow")]
+ private static extern ulong ovr_IAP_LaunchCheckoutFlow_Native(IntPtr sku);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_LanguagePack_GetCurrent();
+
+ public static ulong ovr_Leaderboard_GetEntries(string leaderboardName, int limit, LeaderboardFilterType filter, LeaderboardStartAt startAt) {
+ IntPtr leaderboardName_native = StringToNative(leaderboardName);
+ var result = (ovr_Leaderboard_GetEntries_Native(leaderboardName_native, limit, filter, startAt));
+ Marshal.FreeCoTaskMem(leaderboardName_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Leaderboard_GetEntries")]
+ private static extern ulong ovr_Leaderboard_GetEntries_Native(IntPtr leaderboardName, int limit, LeaderboardFilterType filter, LeaderboardStartAt startAt);
+
+ public static ulong ovr_Leaderboard_GetEntriesAfterRank(string leaderboardName, int limit, ulong afterRank) {
+ IntPtr leaderboardName_native = StringToNative(leaderboardName);
+ var result = (ovr_Leaderboard_GetEntriesAfterRank_Native(leaderboardName_native, limit, afterRank));
+ Marshal.FreeCoTaskMem(leaderboardName_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Leaderboard_GetEntriesAfterRank")]
+ private static extern ulong ovr_Leaderboard_GetEntriesAfterRank_Native(IntPtr leaderboardName, int limit, ulong afterRank);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Leaderboard_GetNextEntries(IntPtr handle);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Leaderboard_GetPreviousEntries(IntPtr handle);
+
+ public static ulong ovr_Leaderboard_WriteEntry(string leaderboardName, long score, byte[] extraData, uint extraDataLength, bool forceUpdate) {
+ IntPtr leaderboardName_native = StringToNative(leaderboardName);
+ var result = (ovr_Leaderboard_WriteEntry_Native(leaderboardName_native, score, extraData, extraDataLength, forceUpdate));
+ Marshal.FreeCoTaskMem(leaderboardName_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Leaderboard_WriteEntry")]
+ private static extern ulong ovr_Leaderboard_WriteEntry_Native(IntPtr leaderboardName, long score, byte[] extraData, uint extraDataLength, bool forceUpdate);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Livestreaming_GetStatus();
+
+ public static ulong ovr_Livestreaming_IsAllowedForApplication(string packageName) {
+ IntPtr packageName_native = StringToNative(packageName);
+ var result = (ovr_Livestreaming_IsAllowedForApplication_Native(packageName_native));
+ Marshal.FreeCoTaskMem(packageName_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Livestreaming_IsAllowedForApplication")]
+ private static extern ulong ovr_Livestreaming_IsAllowedForApplication_Native(IntPtr packageName);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Livestreaming_PauseStream();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Livestreaming_ResumeStream();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Livestreaming_StartPartyStream();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Livestreaming_StartStream(LivestreamingAudience audience, LivestreamingMicrophoneStatus micStatus);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Livestreaming_StopPartyStream();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Livestreaming_StopStream();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Livestreaming_UpdateCommentsOverlayVisibility(bool isVisible);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Livestreaming_UpdateMicStatus(LivestreamingMicrophoneStatus micStatus);
+
+ public static ulong ovr_Matchmaking_Browse(string pool, IntPtr customQueryData) {
+ IntPtr pool_native = StringToNative(pool);
+ var result = (ovr_Matchmaking_Browse_Native(pool_native, customQueryData));
+ Marshal.FreeCoTaskMem(pool_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Matchmaking_Browse")]
+ private static extern ulong ovr_Matchmaking_Browse_Native(IntPtr pool, IntPtr customQueryData);
+
+ public static ulong ovr_Matchmaking_Browse2(string pool, IntPtr matchmakingOptions) {
+ IntPtr pool_native = StringToNative(pool);
+ var result = (ovr_Matchmaking_Browse2_Native(pool_native, matchmakingOptions));
+ Marshal.FreeCoTaskMem(pool_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Matchmaking_Browse2")]
+ private static extern ulong ovr_Matchmaking_Browse2_Native(IntPtr pool, IntPtr matchmakingOptions);
+
+ public static ulong ovr_Matchmaking_Cancel(string pool, string requestHash) {
+ IntPtr pool_native = StringToNative(pool);
+ IntPtr requestHash_native = StringToNative(requestHash);
+ var result = (ovr_Matchmaking_Cancel_Native(pool_native, requestHash_native));
+ Marshal.FreeCoTaskMem(pool_native);
+ Marshal.FreeCoTaskMem(requestHash_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Matchmaking_Cancel")]
+ private static extern ulong ovr_Matchmaking_Cancel_Native(IntPtr pool, IntPtr requestHash);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Matchmaking_Cancel2();
+
+ public static ulong ovr_Matchmaking_CreateAndEnqueueRoom(string pool, uint maxUsers, bool subscribeToUpdates, IntPtr customQueryData) {
+ IntPtr pool_native = StringToNative(pool);
+ var result = (ovr_Matchmaking_CreateAndEnqueueRoom_Native(pool_native, maxUsers, subscribeToUpdates, customQueryData));
+ Marshal.FreeCoTaskMem(pool_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Matchmaking_CreateAndEnqueueRoom")]
+ private static extern ulong ovr_Matchmaking_CreateAndEnqueueRoom_Native(IntPtr pool, uint maxUsers, bool subscribeToUpdates, IntPtr customQueryData);
+
+ public static ulong ovr_Matchmaking_CreateAndEnqueueRoom2(string pool, IntPtr matchmakingOptions) {
+ IntPtr pool_native = StringToNative(pool);
+ var result = (ovr_Matchmaking_CreateAndEnqueueRoom2_Native(pool_native, matchmakingOptions));
+ Marshal.FreeCoTaskMem(pool_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Matchmaking_CreateAndEnqueueRoom2")]
+ private static extern ulong ovr_Matchmaking_CreateAndEnqueueRoom2_Native(IntPtr pool, IntPtr matchmakingOptions);
+
+ public static ulong ovr_Matchmaking_CreateRoom(string pool, uint maxUsers, bool subscribeToUpdates) {
+ IntPtr pool_native = StringToNative(pool);
+ var result = (ovr_Matchmaking_CreateRoom_Native(pool_native, maxUsers, subscribeToUpdates));
+ Marshal.FreeCoTaskMem(pool_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Matchmaking_CreateRoom")]
+ private static extern ulong ovr_Matchmaking_CreateRoom_Native(IntPtr pool, uint maxUsers, bool subscribeToUpdates);
+
+ public static ulong ovr_Matchmaking_CreateRoom2(string pool, IntPtr matchmakingOptions) {
+ IntPtr pool_native = StringToNative(pool);
+ var result = (ovr_Matchmaking_CreateRoom2_Native(pool_native, matchmakingOptions));
+ Marshal.FreeCoTaskMem(pool_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Matchmaking_CreateRoom2")]
+ private static extern ulong ovr_Matchmaking_CreateRoom2_Native(IntPtr pool, IntPtr matchmakingOptions);
+
+ public static ulong ovr_Matchmaking_Enqueue(string pool, IntPtr customQueryData) {
+ IntPtr pool_native = StringToNative(pool);
+ var result = (ovr_Matchmaking_Enqueue_Native(pool_native, customQueryData));
+ Marshal.FreeCoTaskMem(pool_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Matchmaking_Enqueue")]
+ private static extern ulong ovr_Matchmaking_Enqueue_Native(IntPtr pool, IntPtr customQueryData);
+
+ public static ulong ovr_Matchmaking_Enqueue2(string pool, IntPtr matchmakingOptions) {
+ IntPtr pool_native = StringToNative(pool);
+ var result = (ovr_Matchmaking_Enqueue2_Native(pool_native, matchmakingOptions));
+ Marshal.FreeCoTaskMem(pool_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Matchmaking_Enqueue2")]
+ private static extern ulong ovr_Matchmaking_Enqueue2_Native(IntPtr pool, IntPtr matchmakingOptions);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Matchmaking_EnqueueRoom(UInt64 roomID, IntPtr customQueryData);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Matchmaking_EnqueueRoom2(UInt64 roomID, IntPtr matchmakingOptions);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Matchmaking_GetAdminSnapshot();
+
+ public static ulong ovr_Matchmaking_GetStats(string pool, uint maxLevel, MatchmakingStatApproach approach) {
+ IntPtr pool_native = StringToNative(pool);
+ var result = (ovr_Matchmaking_GetStats_Native(pool_native, maxLevel, approach));
+ Marshal.FreeCoTaskMem(pool_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Matchmaking_GetStats")]
+ private static extern ulong ovr_Matchmaking_GetStats_Native(IntPtr pool, uint maxLevel, MatchmakingStatApproach approach);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Matchmaking_JoinRoom(UInt64 roomID, bool subscribeToUpdates);
+
+ public static ulong ovr_Matchmaking_ReportResultInsecure(UInt64 roomID, ovrKeyValuePair[] data) {
+ UIntPtr data_length = (UIntPtr)data.Length;
+ var result = (ovr_Matchmaking_ReportResultInsecure_Native(roomID, data, data_length));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Matchmaking_ReportResultInsecure")]
+ private static extern ulong ovr_Matchmaking_ReportResultInsecure_Native(UInt64 roomID, ovrKeyValuePair[] data, UIntPtr numItems);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Matchmaking_StartMatch(UInt64 roomID);
+
+ public static ulong ovr_Media_ShareToFacebook(string postTextSuggestion, string filePath, MediaContentType contentType) {
+ IntPtr postTextSuggestion_native = StringToNative(postTextSuggestion);
+ IntPtr filePath_native = StringToNative(filePath);
+ var result = (ovr_Media_ShareToFacebook_Native(postTextSuggestion_native, filePath_native, contentType));
+ Marshal.FreeCoTaskMem(postTextSuggestion_native);
+ Marshal.FreeCoTaskMem(filePath_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Media_ShareToFacebook")]
+ private static extern ulong ovr_Media_ShareToFacebook_Native(IntPtr postTextSuggestion, IntPtr filePath, MediaContentType contentType);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Notification_GetRoomInvites();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Notification_MarkAsRead(UInt64 notificationID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Party_Create();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Party_GatherInApplication(UInt64 partyID, UInt64 appID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Party_Get(UInt64 partyID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Party_GetCurrent();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Party_GetCurrentForUser(UInt64 userID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Party_Invite(UInt64 partyID, UInt64 userID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Party_Join(UInt64 partyID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Party_Leave(UInt64 partyID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Room_CreateAndJoinPrivate(RoomJoinPolicy joinPolicy, uint maxUsers, bool subscribeToUpdates);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Room_CreateAndJoinPrivate2(RoomJoinPolicy joinPolicy, uint maxUsers, IntPtr roomOptions);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Room_Get(UInt64 roomID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Room_GetCurrent();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Room_GetCurrentForUser(UInt64 userID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Room_GetInvitableUsers();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Room_GetInvitableUsers2(IntPtr roomOptions);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Room_GetModeratedRooms();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Room_GetSocialRooms(UInt64 appID);
+
+ public static ulong ovr_Room_InviteUser(UInt64 roomID, string inviteToken) {
+ IntPtr inviteToken_native = StringToNative(inviteToken);
+ var result = (ovr_Room_InviteUser_Native(roomID, inviteToken_native));
+ Marshal.FreeCoTaskMem(inviteToken_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Room_InviteUser")]
+ private static extern ulong ovr_Room_InviteUser_Native(UInt64 roomID, IntPtr inviteToken);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Room_Join(UInt64 roomID, bool subscribeToUpdates);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Room_Join2(UInt64 roomID, IntPtr roomOptions);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Room_KickUser(UInt64 roomID, UInt64 userID, int kickDurationSeconds);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Room_LaunchInvitableUserFlow(UInt64 roomID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Room_Leave(UInt64 roomID);
+
+ public static ulong ovr_Room_SetDescription(UInt64 roomID, string description) {
+ IntPtr description_native = StringToNative(description);
+ var result = (ovr_Room_SetDescription_Native(roomID, description_native));
+ Marshal.FreeCoTaskMem(description_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Room_SetDescription")]
+ private static extern ulong ovr_Room_SetDescription_Native(UInt64 roomID, IntPtr description);
+
+ public static ulong ovr_Room_UpdateDataStore(UInt64 roomID, ovrKeyValuePair[] data) {
+ UIntPtr data_length = (UIntPtr)data.Length;
+ var result = (ovr_Room_UpdateDataStore_Native(roomID, data, data_length));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Room_UpdateDataStore")]
+ private static extern ulong ovr_Room_UpdateDataStore_Native(UInt64 roomID, ovrKeyValuePair[] data, UIntPtr numItems);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Room_UpdateMembershipLockStatus(UInt64 roomID, RoomMembershipLockStatus membershipLockStatus);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Room_UpdateOwner(UInt64 roomID, UInt64 userID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Room_UpdatePrivateRoomJoinPolicy(UInt64 roomID, RoomJoinPolicy newJoinPolicy);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_SystemPermissions_GetStatus(PermissionType permType);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_SystemPermissions_LaunchDeeplink(PermissionType permType);
+
+ public static ulong ovr_User_CancelRecordingForReportFlow(string recordingUUID) {
+ IntPtr recordingUUID_native = StringToNative(recordingUUID);
+ var result = (ovr_User_CancelRecordingForReportFlow_Native(recordingUUID_native));
+ Marshal.FreeCoTaskMem(recordingUUID_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_User_CancelRecordingForReportFlow")]
+ private static extern ulong ovr_User_CancelRecordingForReportFlow_Native(IntPtr recordingUUID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_Get(UInt64 userID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_GetAccessToken();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_GetLinkedAccounts(IntPtr userOptions);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_GetLoggedInUser();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_GetLoggedInUserFriends();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_GetLoggedInUserFriendsAndRooms();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_GetLoggedInUserRecentlyMetUsersAndRooms(IntPtr userOptions);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_GetOrgScopedID(UInt64 userID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_GetSdkAccounts();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_GetUserProof();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_LaunchBlockFlow(UInt64 userID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_LaunchFriendRequestFlow(UInt64 userID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_LaunchProfile(UInt64 userID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_LaunchReportFlow(UInt64 userID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_LaunchUnblockFlow(UInt64 userID);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_NewEntitledTestUser();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_NewTestUser();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_NewTestUserFriends();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_User_StartRecordingForReportFlow();
+
+ public static ulong ovr_User_StopRecordingAndLaunchReportFlow(UInt64 optionalUserID, string optionalRecordingUUID) {
+ IntPtr optionalRecordingUUID_native = StringToNative(optionalRecordingUUID);
+ var result = (ovr_User_StopRecordingAndLaunchReportFlow_Native(optionalUserID, optionalRecordingUUID_native));
+ Marshal.FreeCoTaskMem(optionalRecordingUUID_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_User_StopRecordingAndLaunchReportFlow")]
+ private static extern ulong ovr_User_StopRecordingAndLaunchReportFlow_Native(UInt64 optionalUserID, IntPtr optionalRecordingUUID);
+
+ public static ulong ovr_User_StopRecordingAndLaunchReportFlow2(UInt64 optionalUserID, string optionalRecordingUUID, IntPtr abuseReportOptions) {
+ IntPtr optionalRecordingUUID_native = StringToNative(optionalRecordingUUID);
+ var result = (ovr_User_StopRecordingAndLaunchReportFlow2_Native(optionalUserID, optionalRecordingUUID_native, abuseReportOptions));
+ Marshal.FreeCoTaskMem(optionalRecordingUUID_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_User_StopRecordingAndLaunchReportFlow2")]
+ private static extern ulong ovr_User_StopRecordingAndLaunchReportFlow2_Native(UInt64 optionalUserID, IntPtr optionalRecordingUUID, IntPtr abuseReportOptions);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Voip_SetSystemVoipSuppressed(bool suppressed);
+
+ public static string ovr_AbuseReportRecording_GetRecordingUuid(IntPtr obj) {
+ var result = StringFromNative(ovr_AbuseReportRecording_GetRecordingUuid_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AbuseReportRecording_GetRecordingUuid")]
+ private static extern IntPtr ovr_AbuseReportRecording_GetRecordingUuid_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_AchievementDefinition_GetBitfieldLength(IntPtr obj);
+
+ public static string ovr_AchievementDefinition_GetName(IntPtr obj) {
+ var result = StringFromNative(ovr_AchievementDefinition_GetName_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AchievementDefinition_GetName")]
+ private static extern IntPtr ovr_AchievementDefinition_GetName_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_AchievementDefinition_GetTarget(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern AchievementType ovr_AchievementDefinition_GetType(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_AchievementDefinitionArray_GetElement(IntPtr obj, UIntPtr index);
+
+ public static string ovr_AchievementDefinitionArray_GetNextUrl(IntPtr obj) {
+ var result = StringFromNative(ovr_AchievementDefinitionArray_GetNextUrl_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AchievementDefinitionArray_GetNextUrl")]
+ private static extern IntPtr ovr_AchievementDefinitionArray_GetNextUrl_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_AchievementDefinitionArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_AchievementDefinitionArray_HasNextPage(IntPtr obj);
+
+ public static string ovr_AchievementProgress_GetBitfield(IntPtr obj) {
+ var result = StringFromNative(ovr_AchievementProgress_GetBitfield_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AchievementProgress_GetBitfield")]
+ private static extern IntPtr ovr_AchievementProgress_GetBitfield_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_AchievementProgress_GetCount(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_AchievementProgress_GetIsUnlocked(IntPtr obj);
+
+ public static string ovr_AchievementProgress_GetName(IntPtr obj) {
+ var result = StringFromNative(ovr_AchievementProgress_GetName_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AchievementProgress_GetName")]
+ private static extern IntPtr ovr_AchievementProgress_GetName_Native(IntPtr obj);
+
+ public static DateTime ovr_AchievementProgress_GetUnlockTime(IntPtr obj) {
+ var result = DateTimeFromNative(ovr_AchievementProgress_GetUnlockTime_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AchievementProgress_GetUnlockTime")]
+ private static extern ulong ovr_AchievementProgress_GetUnlockTime_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_AchievementProgressArray_GetElement(IntPtr obj, UIntPtr index);
+
+ public static string ovr_AchievementProgressArray_GetNextUrl(IntPtr obj) {
+ var result = StringFromNative(ovr_AchievementProgressArray_GetNextUrl_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AchievementProgressArray_GetNextUrl")]
+ private static extern IntPtr ovr_AchievementProgressArray_GetNextUrl_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_AchievementProgressArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_AchievementProgressArray_HasNextPage(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_AchievementUpdate_GetJustUnlocked(IntPtr obj);
+
+ public static string ovr_AchievementUpdate_GetName(IntPtr obj) {
+ var result = StringFromNative(ovr_AchievementUpdate_GetName_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AchievementUpdate_GetName")]
+ private static extern IntPtr ovr_AchievementUpdate_GetName_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_Application_GetID(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern int ovr_ApplicationVersion_GetCurrentCode(IntPtr obj);
+
+ public static string ovr_ApplicationVersion_GetCurrentName(IntPtr obj) {
+ var result = StringFromNative(ovr_ApplicationVersion_GetCurrentName_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_ApplicationVersion_GetCurrentName")]
+ private static extern IntPtr ovr_ApplicationVersion_GetCurrentName_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern int ovr_ApplicationVersion_GetLatestCode(IntPtr obj);
+
+ public static string ovr_ApplicationVersion_GetLatestName(IntPtr obj) {
+ var result = StringFromNative(ovr_ApplicationVersion_GetLatestName_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_ApplicationVersion_GetLatestName")]
+ private static extern IntPtr ovr_ApplicationVersion_GetLatestName_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_AssetDetails_GetAssetId(IntPtr obj);
+
+ public static string ovr_AssetDetails_GetAssetType(IntPtr obj) {
+ var result = StringFromNative(ovr_AssetDetails_GetAssetType_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AssetDetails_GetAssetType")]
+ private static extern IntPtr ovr_AssetDetails_GetAssetType_Native(IntPtr obj);
+
+ public static string ovr_AssetDetails_GetDownloadStatus(IntPtr obj) {
+ var result = StringFromNative(ovr_AssetDetails_GetDownloadStatus_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AssetDetails_GetDownloadStatus")]
+ private static extern IntPtr ovr_AssetDetails_GetDownloadStatus_Native(IntPtr obj);
+
+ public static string ovr_AssetDetails_GetFilepath(IntPtr obj) {
+ var result = StringFromNative(ovr_AssetDetails_GetFilepath_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AssetDetails_GetFilepath")]
+ private static extern IntPtr ovr_AssetDetails_GetFilepath_Native(IntPtr obj);
+
+ public static string ovr_AssetDetails_GetIapStatus(IntPtr obj) {
+ var result = StringFromNative(ovr_AssetDetails_GetIapStatus_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AssetDetails_GetIapStatus")]
+ private static extern IntPtr ovr_AssetDetails_GetIapStatus_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_AssetDetails_GetLanguage(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_AssetDetailsArray_GetElement(IntPtr obj, UIntPtr index);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_AssetDetailsArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_AssetFileDeleteResult_GetAssetFileId(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_AssetFileDeleteResult_GetAssetId(IntPtr obj);
+
+ public static string ovr_AssetFileDeleteResult_GetFilepath(IntPtr obj) {
+ var result = StringFromNative(ovr_AssetFileDeleteResult_GetFilepath_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AssetFileDeleteResult_GetFilepath")]
+ private static extern IntPtr ovr_AssetFileDeleteResult_GetFilepath_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_AssetFileDeleteResult_GetSuccess(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_AssetFileDownloadCancelResult_GetAssetFileId(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_AssetFileDownloadCancelResult_GetAssetId(IntPtr obj);
+
+ public static string ovr_AssetFileDownloadCancelResult_GetFilepath(IntPtr obj) {
+ var result = StringFromNative(ovr_AssetFileDownloadCancelResult_GetFilepath_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AssetFileDownloadCancelResult_GetFilepath")]
+ private static extern IntPtr ovr_AssetFileDownloadCancelResult_GetFilepath_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_AssetFileDownloadCancelResult_GetSuccess(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_AssetFileDownloadResult_GetAssetId(IntPtr obj);
+
+ public static string ovr_AssetFileDownloadResult_GetFilepath(IntPtr obj) {
+ var result = StringFromNative(ovr_AssetFileDownloadResult_GetFilepath_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_AssetFileDownloadResult_GetFilepath")]
+ private static extern IntPtr ovr_AssetFileDownloadResult_GetFilepath_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_AssetFileDownloadUpdate_GetAssetFileId(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_AssetFileDownloadUpdate_GetAssetId(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_AssetFileDownloadUpdate_GetBytesTotal(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern int ovr_AssetFileDownloadUpdate_GetBytesTransferred(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_AssetFileDownloadUpdate_GetCompleted(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_CloudStorageConflictMetadata_GetLocal(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_CloudStorageConflictMetadata_GetRemote(IntPtr obj);
+
+ public static string ovr_CloudStorageData_GetBucket(IntPtr obj) {
+ var result = StringFromNative(ovr_CloudStorageData_GetBucket_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorageData_GetBucket")]
+ private static extern IntPtr ovr_CloudStorageData_GetBucket_Native(IntPtr obj);
+
+ public static byte[] ovr_CloudStorageData_GetData(IntPtr obj) {
+ var result = FiledataFromNative(ovr_CloudStorageData_GetDataSize(obj), ovr_CloudStorageData_GetData_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorageData_GetData")]
+ private static extern IntPtr ovr_CloudStorageData_GetData_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_CloudStorageData_GetDataSize(IntPtr obj);
+
+ public static string ovr_CloudStorageData_GetKey(IntPtr obj) {
+ var result = StringFromNative(ovr_CloudStorageData_GetKey_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorageData_GetKey")]
+ private static extern IntPtr ovr_CloudStorageData_GetKey_Native(IntPtr obj);
+
+ public static string ovr_CloudStorageMetadata_GetBucket(IntPtr obj) {
+ var result = StringFromNative(ovr_CloudStorageMetadata_GetBucket_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorageMetadata_GetBucket")]
+ private static extern IntPtr ovr_CloudStorageMetadata_GetBucket_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern long ovr_CloudStorageMetadata_GetCounter(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_CloudStorageMetadata_GetDataSize(IntPtr obj);
+
+ public static string ovr_CloudStorageMetadata_GetExtraData(IntPtr obj) {
+ var result = StringFromNative(ovr_CloudStorageMetadata_GetExtraData_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorageMetadata_GetExtraData")]
+ private static extern IntPtr ovr_CloudStorageMetadata_GetExtraData_Native(IntPtr obj);
+
+ public static string ovr_CloudStorageMetadata_GetKey(IntPtr obj) {
+ var result = StringFromNative(ovr_CloudStorageMetadata_GetKey_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorageMetadata_GetKey")]
+ private static extern IntPtr ovr_CloudStorageMetadata_GetKey_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_CloudStorageMetadata_GetSaveTime(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern CloudStorageDataStatus ovr_CloudStorageMetadata_GetStatus(IntPtr obj);
+
+ public static string ovr_CloudStorageMetadata_GetVersionHandle(IntPtr obj) {
+ var result = StringFromNative(ovr_CloudStorageMetadata_GetVersionHandle_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorageMetadata_GetVersionHandle")]
+ private static extern IntPtr ovr_CloudStorageMetadata_GetVersionHandle_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_CloudStorageMetadataArray_GetElement(IntPtr obj, UIntPtr index);
+
+ public static string ovr_CloudStorageMetadataArray_GetNextUrl(IntPtr obj) {
+ var result = StringFromNative(ovr_CloudStorageMetadataArray_GetNextUrl_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorageMetadataArray_GetNextUrl")]
+ private static extern IntPtr ovr_CloudStorageMetadataArray_GetNextUrl_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_CloudStorageMetadataArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_CloudStorageMetadataArray_HasNextPage(IntPtr obj);
+
+ public static string ovr_CloudStorageUpdateResponse_GetBucket(IntPtr obj) {
+ var result = StringFromNative(ovr_CloudStorageUpdateResponse_GetBucket_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorageUpdateResponse_GetBucket")]
+ private static extern IntPtr ovr_CloudStorageUpdateResponse_GetBucket_Native(IntPtr obj);
+
+ public static string ovr_CloudStorageUpdateResponse_GetKey(IntPtr obj) {
+ var result = StringFromNative(ovr_CloudStorageUpdateResponse_GetKey_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorageUpdateResponse_GetKey")]
+ private static extern IntPtr ovr_CloudStorageUpdateResponse_GetKey_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern CloudStorageUpdateStatus ovr_CloudStorageUpdateResponse_GetStatus(IntPtr obj);
+
+ public static string ovr_CloudStorageUpdateResponse_GetVersionHandle(IntPtr obj) {
+ var result = StringFromNative(ovr_CloudStorageUpdateResponse_GetVersionHandle_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_CloudStorageUpdateResponse_GetVersionHandle")]
+ private static extern IntPtr ovr_CloudStorageUpdateResponse_GetVersionHandle_Native(IntPtr obj);
+
+ public static uint ovr_DataStore_Contains(IntPtr obj, string key) {
+ IntPtr key_native = StringToNative(key);
+ var result = (ovr_DataStore_Contains_Native(obj, key_native));
+ Marshal.FreeCoTaskMem(key_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_DataStore_Contains")]
+ private static extern uint ovr_DataStore_Contains_Native(IntPtr obj, IntPtr key);
+
+ public static string ovr_DataStore_GetKey(IntPtr obj, int index) {
+ var result = StringFromNative(ovr_DataStore_GetKey_Native(obj, index));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_DataStore_GetKey")]
+ private static extern IntPtr ovr_DataStore_GetKey_Native(IntPtr obj, int index);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_DataStore_GetNumKeys(IntPtr obj);
+
+ public static string ovr_DataStore_GetValue(IntPtr obj, string key) {
+ IntPtr key_native = StringToNative(key);
+ var result = StringFromNative(ovr_DataStore_GetValue_Native(obj, key_native));
+ Marshal.FreeCoTaskMem(key_native);
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_DataStore_GetValue")]
+ private static extern IntPtr ovr_DataStore_GetValue_Native(IntPtr obj, IntPtr key);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern int ovr_Error_GetCode(IntPtr obj);
+
+ public static string ovr_Error_GetDisplayableMessage(IntPtr obj) {
+ var result = StringFromNative(ovr_Error_GetDisplayableMessage_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Error_GetDisplayableMessage")]
+ private static extern IntPtr ovr_Error_GetDisplayableMessage_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern int ovr_Error_GetHttpCode(IntPtr obj);
+
+ public static string ovr_Error_GetMessage(IntPtr obj) {
+ var result = StringFromNative(ovr_Error_GetMessage_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Error_GetMessage")]
+ private static extern IntPtr ovr_Error_GetMessage_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_HttpTransferUpdate_GetBytes(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_HttpTransferUpdate_GetID(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_HttpTransferUpdate_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_HttpTransferUpdate_IsCompleted(IntPtr obj);
+
+ public static string ovr_InstalledApplication_GetApplicationId(IntPtr obj) {
+ var result = StringFromNative(ovr_InstalledApplication_GetApplicationId_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_InstalledApplication_GetApplicationId")]
+ private static extern IntPtr ovr_InstalledApplication_GetApplicationId_Native(IntPtr obj);
+
+ public static string ovr_InstalledApplication_GetPackageName(IntPtr obj) {
+ var result = StringFromNative(ovr_InstalledApplication_GetPackageName_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_InstalledApplication_GetPackageName")]
+ private static extern IntPtr ovr_InstalledApplication_GetPackageName_Native(IntPtr obj);
+
+ public static string ovr_InstalledApplication_GetStatus(IntPtr obj) {
+ var result = StringFromNative(ovr_InstalledApplication_GetStatus_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_InstalledApplication_GetStatus")]
+ private static extern IntPtr ovr_InstalledApplication_GetStatus_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern int ovr_InstalledApplication_GetVersionCode(IntPtr obj);
+
+ public static string ovr_InstalledApplication_GetVersionName(IntPtr obj) {
+ var result = StringFromNative(ovr_InstalledApplication_GetVersionName_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_InstalledApplication_GetVersionName")]
+ private static extern IntPtr ovr_InstalledApplication_GetVersionName_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_InstalledApplicationArray_GetElement(IntPtr obj, UIntPtr index);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_InstalledApplicationArray_GetSize(IntPtr obj);
+
+ public static string ovr_LanguagePackInfo_GetEnglishName(IntPtr obj) {
+ var result = StringFromNative(ovr_LanguagePackInfo_GetEnglishName_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_LanguagePackInfo_GetEnglishName")]
+ private static extern IntPtr ovr_LanguagePackInfo_GetEnglishName_Native(IntPtr obj);
+
+ public static string ovr_LanguagePackInfo_GetNativeName(IntPtr obj) {
+ var result = StringFromNative(ovr_LanguagePackInfo_GetNativeName_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_LanguagePackInfo_GetNativeName")]
+ private static extern IntPtr ovr_LanguagePackInfo_GetNativeName_Native(IntPtr obj);
+
+ public static string ovr_LanguagePackInfo_GetTag(IntPtr obj) {
+ var result = StringFromNative(ovr_LanguagePackInfo_GetTag_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_LanguagePackInfo_GetTag")]
+ private static extern IntPtr ovr_LanguagePackInfo_GetTag_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_LaunchBlockFlowResult_GetDidBlock(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_LaunchBlockFlowResult_GetDidCancel(IntPtr obj);
+
+ public static string ovr_LaunchDetails_GetDeeplinkMessage(IntPtr obj) {
+ var result = StringFromNative(ovr_LaunchDetails_GetDeeplinkMessage_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_LaunchDetails_GetDeeplinkMessage")]
+ private static extern IntPtr ovr_LaunchDetails_GetDeeplinkMessage_Native(IntPtr obj);
+
+ public static string ovr_LaunchDetails_GetLaunchSource(IntPtr obj) {
+ var result = StringFromNative(ovr_LaunchDetails_GetLaunchSource_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_LaunchDetails_GetLaunchSource")]
+ private static extern IntPtr ovr_LaunchDetails_GetLaunchSource_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern LaunchType ovr_LaunchDetails_GetLaunchType(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_LaunchDetails_GetRoomID(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_LaunchDetails_GetUsers(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_LaunchFriendRequestFlowResult_GetDidCancel(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_LaunchFriendRequestFlowResult_GetDidSendRequest(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_LaunchUnblockFlowResult_GetDidCancel(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_LaunchUnblockFlowResult_GetDidUnblock(IntPtr obj);
+
+ public static byte[] ovr_LeaderboardEntry_GetExtraData(IntPtr obj) {
+ var result = BlobFromNative(ovr_LeaderboardEntry_GetExtraDataLength(obj), ovr_LeaderboardEntry_GetExtraData_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_LeaderboardEntry_GetExtraData")]
+ private static extern IntPtr ovr_LeaderboardEntry_GetExtraData_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_LeaderboardEntry_GetExtraDataLength(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern int ovr_LeaderboardEntry_GetRank(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern long ovr_LeaderboardEntry_GetScore(IntPtr obj);
+
+ public static DateTime ovr_LeaderboardEntry_GetTimestamp(IntPtr obj) {
+ var result = DateTimeFromNative(ovr_LeaderboardEntry_GetTimestamp_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_LeaderboardEntry_GetTimestamp")]
+ private static extern ulong ovr_LeaderboardEntry_GetTimestamp_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_LeaderboardEntry_GetUser(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_LeaderboardEntryArray_GetElement(IntPtr obj, UIntPtr index);
+
+ public static string ovr_LeaderboardEntryArray_GetNextUrl(IntPtr obj) {
+ var result = StringFromNative(ovr_LeaderboardEntryArray_GetNextUrl_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_LeaderboardEntryArray_GetNextUrl")]
+ private static extern IntPtr ovr_LeaderboardEntryArray_GetNextUrl_Native(IntPtr obj);
+
+ public static string ovr_LeaderboardEntryArray_GetPreviousUrl(IntPtr obj) {
+ var result = StringFromNative(ovr_LeaderboardEntryArray_GetPreviousUrl_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_LeaderboardEntryArray_GetPreviousUrl")]
+ private static extern IntPtr ovr_LeaderboardEntryArray_GetPreviousUrl_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_LeaderboardEntryArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_LeaderboardEntryArray_GetTotalCount(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_LeaderboardEntryArray_HasNextPage(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_LeaderboardEntryArray_HasPreviousPage(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_LeaderboardUpdateStatus_GetDidUpdate(IntPtr obj);
+
+ public static string ovr_LinkedAccount_GetAccessToken(IntPtr obj) {
+ var result = StringFromNative(ovr_LinkedAccount_GetAccessToken_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_LinkedAccount_GetAccessToken")]
+ private static extern IntPtr ovr_LinkedAccount_GetAccessToken_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ServiceProvider ovr_LinkedAccount_GetServiceProvider(IntPtr obj);
+
+ public static string ovr_LinkedAccount_GetUserId(IntPtr obj) {
+ var result = StringFromNative(ovr_LinkedAccount_GetUserId_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_LinkedAccount_GetUserId")]
+ private static extern IntPtr ovr_LinkedAccount_GetUserId_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_LinkedAccountArray_GetElement(IntPtr obj, UIntPtr index);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_LinkedAccountArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_LivestreamingApplicationStatus_GetStreamingEnabled(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern LivestreamingStartStatus ovr_LivestreamingStartResult_GetStreamingResult(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_LivestreamingStatus_GetCommentsVisible(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_LivestreamingStatus_GetIsPaused(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_LivestreamingStatus_GetLivestreamingEnabled(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern int ovr_LivestreamingStatus_GetLivestreamingType(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_LivestreamingStatus_GetMicEnabled(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern int ovr_LivestreamingVideoStats_GetCommentCount(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern int ovr_LivestreamingVideoStats_GetReactionCount(IntPtr obj);
+
+ public static string ovr_LivestreamingVideoStats_GetTotalViews(IntPtr obj) {
+ var result = StringFromNative(ovr_LivestreamingVideoStats_GetTotalViews_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_LivestreamingVideoStats_GetTotalViews")]
+ private static extern IntPtr ovr_LivestreamingVideoStats_GetTotalViews_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_MatchmakingAdminSnapshot_GetCandidates(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern double ovr_MatchmakingAdminSnapshot_GetMyCurrentThreshold(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_MatchmakingAdminSnapshotCandidate_GetCanMatch(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern double ovr_MatchmakingAdminSnapshotCandidate_GetMyTotalScore(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern double ovr_MatchmakingAdminSnapshotCandidate_GetTheirCurrentThreshold(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern double ovr_MatchmakingAdminSnapshotCandidate_GetTheirTotalScore(IntPtr obj);
+
+ public static string ovr_MatchmakingAdminSnapshotCandidate_GetTraceId(IntPtr obj) {
+ var result = StringFromNative(ovr_MatchmakingAdminSnapshotCandidate_GetTraceId_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_MatchmakingAdminSnapshotCandidate_GetTraceId")]
+ private static extern IntPtr ovr_MatchmakingAdminSnapshotCandidate_GetTraceId_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_MatchmakingAdminSnapshotCandidateArray_GetElement(IntPtr obj, UIntPtr index);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_MatchmakingAdminSnapshotCandidateArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_MatchmakingBrowseResult_GetEnqueueResult(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_MatchmakingBrowseResult_GetRooms(IntPtr obj);
+
+ public static string ovr_MatchmakingCandidate_GetEntryHash(IntPtr obj) {
+ var result = StringFromNative(ovr_MatchmakingCandidate_GetEntryHash_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_MatchmakingCandidate_GetEntryHash")]
+ private static extern IntPtr ovr_MatchmakingCandidate_GetEntryHash_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_MatchmakingCandidate_GetUserId(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_MatchmakingCandidateArray_GetElement(IntPtr obj, UIntPtr index);
+
+ public static string ovr_MatchmakingCandidateArray_GetNextUrl(IntPtr obj) {
+ var result = StringFromNative(ovr_MatchmakingCandidateArray_GetNextUrl_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_MatchmakingCandidateArray_GetNextUrl")]
+ private static extern IntPtr ovr_MatchmakingCandidateArray_GetNextUrl_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_MatchmakingCandidateArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_MatchmakingCandidateArray_HasNextPage(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_MatchmakingEnqueueResult_GetAdminSnapshot(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_MatchmakingEnqueueResult_GetAverageWait(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_MatchmakingEnqueueResult_GetMatchesInLastHourCount(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_MatchmakingEnqueueResult_GetMaxExpectedWait(IntPtr obj);
+
+ public static string ovr_MatchmakingEnqueueResult_GetPool(IntPtr obj) {
+ var result = StringFromNative(ovr_MatchmakingEnqueueResult_GetPool_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_MatchmakingEnqueueResult_GetPool")]
+ private static extern IntPtr ovr_MatchmakingEnqueueResult_GetPool_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_MatchmakingEnqueueResult_GetRecentMatchPercentage(IntPtr obj);
+
+ public static string ovr_MatchmakingEnqueueResult_GetRequestHash(IntPtr obj) {
+ var result = StringFromNative(ovr_MatchmakingEnqueueResult_GetRequestHash_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_MatchmakingEnqueueResult_GetRequestHash")]
+ private static extern IntPtr ovr_MatchmakingEnqueueResult_GetRequestHash_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_MatchmakingEnqueueResultAndRoom_GetMatchmakingEnqueueResult(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_MatchmakingEnqueueResultAndRoom_GetRoom(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_MatchmakingEnqueuedUser_GetAdditionalUserID(IntPtr obj, uint index);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_MatchmakingEnqueuedUser_GetAdditionalUserIDsSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_MatchmakingEnqueuedUser_GetCustomData(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_MatchmakingEnqueuedUser_GetUser(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_MatchmakingEnqueuedUserArray_GetElement(IntPtr obj, UIntPtr index);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_MatchmakingEnqueuedUserArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_MatchmakingNotification_GetAddedByUserId(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_MatchmakingNotification_GetRoom(IntPtr obj);
+
+ public static string ovr_MatchmakingNotification_GetTraceId(IntPtr obj) {
+ var result = StringFromNative(ovr_MatchmakingNotification_GetTraceId_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_MatchmakingNotification_GetTraceId")]
+ private static extern IntPtr ovr_MatchmakingNotification_GetTraceId_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_MatchmakingRoom_GetPingTime(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_MatchmakingRoom_GetRoom(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_MatchmakingRoom_HasPingTime(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_MatchmakingRoomArray_GetElement(IntPtr obj, UIntPtr index);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_MatchmakingRoomArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_MatchmakingStats_GetDrawCount(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_MatchmakingStats_GetLossCount(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_MatchmakingStats_GetSkillLevel(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_MatchmakingStats_GetWinCount(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetAbuseReportRecording(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetAchievementDefinitionArray(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetAchievementProgressArray(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetAchievementUpdate(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetApplicationVersion(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetAssetDetails(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetAssetDetailsArray(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetAssetFileDeleteResult(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetAssetFileDownloadCancelResult(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetAssetFileDownloadResult(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetAssetFileDownloadUpdate(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetCloudStorageConflictMetadata(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetCloudStorageData(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetCloudStorageMetadata(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetCloudStorageMetadataArray(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetCloudStorageUpdateResponse(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetError(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetHttpTransferUpdate(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetInstalledApplicationArray(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetLaunchBlockFlowResult(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetLaunchFriendRequestFlowResult(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetLaunchUnblockFlowResult(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetLeaderboardEntryArray(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetLeaderboardUpdateStatus(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetLinkedAccountArray(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetLivestreamingApplicationStatus(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetLivestreamingStartResult(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetLivestreamingStatus(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetLivestreamingVideoStats(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetMatchmakingAdminSnapshot(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetMatchmakingBrowseResult(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetMatchmakingEnqueueResult(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetMatchmakingEnqueueResultAndRoom(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetMatchmakingRoomArray(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetMatchmakingStats(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetNativeMessage(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetNetworkingPeer(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetOrgScopedID(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetParty(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetPartyID(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetPidArray(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetPingResult(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetPlatformInitialize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetProductArray(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetPurchase(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetPurchaseArray(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_Message_GetRequestID(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetRoom(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetRoomArray(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetRoomInviteNotification(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetRoomInviteNotificationArray(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetSdkAccountArray(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetShareMediaResult(IntPtr obj);
+
+ public static string ovr_Message_GetString(IntPtr obj) {
+ var result = StringFromNative(ovr_Message_GetString_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Message_GetString")]
+ private static extern IntPtr ovr_Message_GetString_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetSystemPermission(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetSystemVoipState(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern Message.MessageType ovr_Message_GetType(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetUser(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetUserAndRoomArray(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetUserArray(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetUserProof(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Message_GetUserReportID(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_Message_IsError(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_Microphone_GetNumSamplesAvailable(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_Microphone_GetOutputBufferMaxSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_Microphone_GetPCM(IntPtr obj, Int16[] outputBuffer, UIntPtr outputBufferNumElements);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_Microphone_GetPCMFloat(IntPtr obj, float[] outputBuffer, UIntPtr outputBufferNumElements);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_Microphone_ReadData(IntPtr obj, float[] outputBuffer, UIntPtr outputBufferSize);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Microphone_SetAcceptableRecordingDelayHint(IntPtr obj, UIntPtr delayMs);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Microphone_Start(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Microphone_Stop(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_NetworkingPeer_GetID(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern PeerConnectionState ovr_NetworkingPeer_GetState(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_OrgScopedID_GetID(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_Packet_Free(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Packet_GetBytes(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern SendPolicy ovr_Packet_GetSendPolicy(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_Packet_GetSenderID(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_Packet_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_Party_GetID(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Party_GetInvitedUsers(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Party_GetLeader(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Party_GetRoom(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Party_GetUsers(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_PartyID_GetID(IntPtr obj);
+
+ public static string ovr_Pid_GetId(IntPtr obj) {
+ var result = StringFromNative(ovr_Pid_GetId_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Pid_GetId")]
+ private static extern IntPtr ovr_Pid_GetId_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_PidArray_GetElement(IntPtr obj, UIntPtr index);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_PidArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_PingResult_GetID(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ulong ovr_PingResult_GetPingTimeUsec(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_PingResult_IsTimeout(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern PlatformInitializeResult ovr_PlatformInitialize_GetResult(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_Price_GetAmountInHundredths(IntPtr obj);
+
+ public static string ovr_Price_GetCurrency(IntPtr obj) {
+ var result = StringFromNative(ovr_Price_GetCurrency_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Price_GetCurrency")]
+ private static extern IntPtr ovr_Price_GetCurrency_Native(IntPtr obj);
+
+ public static string ovr_Price_GetFormatted(IntPtr obj) {
+ var result = StringFromNative(ovr_Price_GetFormatted_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Price_GetFormatted")]
+ private static extern IntPtr ovr_Price_GetFormatted_Native(IntPtr obj);
+
+ public static string ovr_Product_GetDescription(IntPtr obj) {
+ var result = StringFromNative(ovr_Product_GetDescription_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Product_GetDescription")]
+ private static extern IntPtr ovr_Product_GetDescription_Native(IntPtr obj);
+
+ public static string ovr_Product_GetFormattedPrice(IntPtr obj) {
+ var result = StringFromNative(ovr_Product_GetFormattedPrice_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Product_GetFormattedPrice")]
+ private static extern IntPtr ovr_Product_GetFormattedPrice_Native(IntPtr obj);
+
+ public static string ovr_Product_GetName(IntPtr obj) {
+ var result = StringFromNative(ovr_Product_GetName_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Product_GetName")]
+ private static extern IntPtr ovr_Product_GetName_Native(IntPtr obj);
+
+ public static string ovr_Product_GetSKU(IntPtr obj) {
+ var result = StringFromNative(ovr_Product_GetSKU_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Product_GetSKU")]
+ private static extern IntPtr ovr_Product_GetSKU_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_ProductArray_GetElement(IntPtr obj, UIntPtr index);
+
+ public static string ovr_ProductArray_GetNextUrl(IntPtr obj) {
+ var result = StringFromNative(ovr_ProductArray_GetNextUrl_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_ProductArray_GetNextUrl")]
+ private static extern IntPtr ovr_ProductArray_GetNextUrl_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_ProductArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_ProductArray_HasNextPage(IntPtr obj);
+
+ public static DateTime ovr_Purchase_GetExpirationTime(IntPtr obj) {
+ var result = DateTimeFromNative(ovr_Purchase_GetExpirationTime_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Purchase_GetExpirationTime")]
+ private static extern ulong ovr_Purchase_GetExpirationTime_Native(IntPtr obj);
+
+ public static DateTime ovr_Purchase_GetGrantTime(IntPtr obj) {
+ var result = DateTimeFromNative(ovr_Purchase_GetGrantTime_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Purchase_GetGrantTime")]
+ private static extern ulong ovr_Purchase_GetGrantTime_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_Purchase_GetPurchaseID(IntPtr obj);
+
+ public static string ovr_Purchase_GetSKU(IntPtr obj) {
+ var result = StringFromNative(ovr_Purchase_GetSKU_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Purchase_GetSKU")]
+ private static extern IntPtr ovr_Purchase_GetSKU_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_PurchaseArray_GetElement(IntPtr obj, UIntPtr index);
+
+ public static string ovr_PurchaseArray_GetNextUrl(IntPtr obj) {
+ var result = StringFromNative(ovr_PurchaseArray_GetNextUrl_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_PurchaseArray_GetNextUrl")]
+ private static extern IntPtr ovr_PurchaseArray_GetNextUrl_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_PurchaseArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_PurchaseArray_HasNextPage(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_Room_GetApplicationID(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Room_GetDataStore(IntPtr obj);
+
+ public static string ovr_Room_GetDescription(IntPtr obj) {
+ var result = StringFromNative(ovr_Room_GetDescription_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Room_GetDescription")]
+ private static extern IntPtr ovr_Room_GetDescription_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_Room_GetID(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Room_GetInvitedUsers(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_Room_GetIsMembershipLocked(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern RoomJoinPolicy ovr_Room_GetJoinPolicy(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern RoomJoinability ovr_Room_GetJoinability(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Room_GetMatchedUsers(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_Room_GetMaxUsers(IntPtr obj);
+
+ public static string ovr_Room_GetName(IntPtr obj) {
+ var result = StringFromNative(ovr_Room_GetName_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_Room_GetName")]
+ private static extern IntPtr ovr_Room_GetName_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Room_GetOwner(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern RoomType ovr_Room_GetType(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_Room_GetUsers(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern uint ovr_Room_GetVersion(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_RoomArray_GetElement(IntPtr obj, UIntPtr index);
+
+ public static string ovr_RoomArray_GetNextUrl(IntPtr obj) {
+ var result = StringFromNative(ovr_RoomArray_GetNextUrl_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_RoomArray_GetNextUrl")]
+ private static extern IntPtr ovr_RoomArray_GetNextUrl_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_RoomArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_RoomArray_HasNextPage(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_RoomInviteNotification_GetID(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_RoomInviteNotification_GetRoomID(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_RoomInviteNotification_GetSenderID(IntPtr obj);
+
+ public static DateTime ovr_RoomInviteNotification_GetSentTime(IntPtr obj) {
+ var result = DateTimeFromNative(ovr_RoomInviteNotification_GetSentTime_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_RoomInviteNotification_GetSentTime")]
+ private static extern ulong ovr_RoomInviteNotification_GetSentTime_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_RoomInviteNotificationArray_GetElement(IntPtr obj, UIntPtr index);
+
+ public static string ovr_RoomInviteNotificationArray_GetNextUrl(IntPtr obj) {
+ var result = StringFromNative(ovr_RoomInviteNotificationArray_GetNextUrl_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_RoomInviteNotificationArray_GetNextUrl")]
+ private static extern IntPtr ovr_RoomInviteNotificationArray_GetNextUrl_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_RoomInviteNotificationArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_RoomInviteNotificationArray_HasNextPage(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern SdkAccountType ovr_SdkAccount_GetAccountType(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_SdkAccount_GetUserId(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_SdkAccountArray_GetElement(IntPtr obj, UIntPtr index);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_SdkAccountArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern ShareMediaStatus ovr_ShareMediaResult_GetStatus(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_SystemPermission_GetHasPermission(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern PermissionGrantStatus ovr_SystemPermission_GetPermissionGrantStatus(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern VoipMuteState ovr_SystemVoipState_GetMicrophoneMuted(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern SystemVoipStatus ovr_SystemVoipState_GetStatus(IntPtr obj);
+
+ public static string ovr_TestUser_GetAccessToken(IntPtr obj) {
+ var result = StringFromNative(ovr_TestUser_GetAccessToken_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_TestUser_GetAccessToken")]
+ private static extern IntPtr ovr_TestUser_GetAccessToken_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_TestUser_GetAppAccessArray(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_TestUser_GetFbAppAccessArray(IntPtr obj);
+
+ public static string ovr_TestUser_GetFriendAccessToken(IntPtr obj) {
+ var result = StringFromNative(ovr_TestUser_GetFriendAccessToken_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_TestUser_GetFriendAccessToken")]
+ private static extern IntPtr ovr_TestUser_GetFriendAccessToken_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_TestUser_GetFriendAppAccessArray(IntPtr obj);
+
+ public static string ovr_TestUser_GetUserAlias(IntPtr obj) {
+ var result = StringFromNative(ovr_TestUser_GetUserAlias_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_TestUser_GetUserAlias")]
+ private static extern IntPtr ovr_TestUser_GetUserAlias_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_TestUser_GetUserId(IntPtr obj);
+
+ public static string ovr_TestUserAppAccess_GetAccessToken(IntPtr obj) {
+ var result = StringFromNative(ovr_TestUserAppAccess_GetAccessToken_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_TestUserAppAccess_GetAccessToken")]
+ private static extern IntPtr ovr_TestUserAppAccess_GetAccessToken_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_TestUserAppAccess_GetAppId(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_TestUserAppAccess_GetUserId(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_TestUserAppAccessArray_GetElement(IntPtr obj, UIntPtr index);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_TestUserAppAccessArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_User_GetID(IntPtr obj);
+
+ public static string ovr_User_GetImageUrl(IntPtr obj) {
+ var result = StringFromNative(ovr_User_GetImageUrl_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_User_GetImageUrl")]
+ private static extern IntPtr ovr_User_GetImageUrl_Native(IntPtr obj);
+
+ public static string ovr_User_GetInviteToken(IntPtr obj) {
+ var result = StringFromNative(ovr_User_GetInviteToken_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_User_GetInviteToken")]
+ private static extern IntPtr ovr_User_GetInviteToken_Native(IntPtr obj);
+
+ public static string ovr_User_GetOculusID(IntPtr obj) {
+ var result = StringFromNative(ovr_User_GetOculusID_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_User_GetOculusID")]
+ private static extern IntPtr ovr_User_GetOculusID_Native(IntPtr obj);
+
+ public static string ovr_User_GetPresence(IntPtr obj) {
+ var result = StringFromNative(ovr_User_GetPresence_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_User_GetPresence")]
+ private static extern IntPtr ovr_User_GetPresence_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UserPresenceStatus ovr_User_GetPresenceStatus(IntPtr obj);
+
+ public static string ovr_User_GetSmallImageUrl(IntPtr obj) {
+ var result = StringFromNative(ovr_User_GetSmallImageUrl_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_User_GetSmallImageUrl")]
+ private static extern IntPtr ovr_User_GetSmallImageUrl_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_UserAndRoom_GetRoom(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_UserAndRoom_GetUser(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_UserAndRoomArray_GetElement(IntPtr obj, UIntPtr index);
+
+ public static string ovr_UserAndRoomArray_GetNextUrl(IntPtr obj) {
+ var result = StringFromNative(ovr_UserAndRoomArray_GetNextUrl_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_UserAndRoomArray_GetNextUrl")]
+ private static extern IntPtr ovr_UserAndRoomArray_GetNextUrl_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_UserAndRoomArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_UserAndRoomArray_HasNextPage(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_UserArray_GetElement(IntPtr obj, UIntPtr index);
+
+ public static string ovr_UserArray_GetNextUrl(IntPtr obj) {
+ var result = StringFromNative(ovr_UserArray_GetNextUrl_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_UserArray_GetNextUrl")]
+ private static extern IntPtr ovr_UserArray_GetNextUrl_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_UserArray_GetSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_UserArray_HasNextPage(IntPtr obj);
+
+ public static string ovr_UserProof_GetNonce(IntPtr obj) {
+ var result = StringFromNative(ovr_UserProof_GetNonce_Native(obj));
+ return result;
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_UserProof_GetNonce")]
+ private static extern IntPtr ovr_UserProof_GetNonce_Native(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool ovr_UserReportID_GetDidCancel(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UInt64 ovr_UserReportID_GetID(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_VoipDecoder_Decode(IntPtr obj, byte[] compressedData, UIntPtr compressedSize);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_VoipDecoder_GetDecodedPCM(IntPtr obj, float[] outputBuffer, UIntPtr outputBufferSize);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_VoipEncoder_AddPCM(IntPtr obj, float[] inputData, uint inputSize);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_VoipEncoder_GetCompressedData(IntPtr obj, byte[] outputBuffer, UIntPtr intputSize);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern UIntPtr ovr_VoipEncoder_GetCompressedDataSize(IntPtr obj);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_AbuseReportOptions_Create();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_AbuseReportOptions_Destroy(IntPtr handle);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_AbuseReportOptions_SetPreventPeopleChooser(IntPtr handle, bool value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_AbuseReportOptions_SetReportType(IntPtr handle, AbuseReportType value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_ApplicationOptions_Create();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_ApplicationOptions_Destroy(IntPtr handle);
+
+ public static void ovr_ApplicationOptions_SetDeeplinkMessage(IntPtr handle, string value) {
+ IntPtr value_native = StringToNative(value);
+ ovr_ApplicationOptions_SetDeeplinkMessage_Native(handle, value_native);
+ Marshal.FreeCoTaskMem(value_native);
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_ApplicationOptions_SetDeeplinkMessage")]
+ private static extern void ovr_ApplicationOptions_SetDeeplinkMessage_Native(IntPtr handle, IntPtr value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_MatchmakingOptions_Create();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_MatchmakingOptions_Destroy(IntPtr handle);
+
+ public static void ovr_MatchmakingOptions_SetCreateRoomDataStoreString(IntPtr handle, string key, string value) {
+ IntPtr key_native = StringToNative(key);
+ IntPtr value_native = StringToNative(value);
+ ovr_MatchmakingOptions_SetCreateRoomDataStoreString_Native(handle, key_native, value_native);
+ Marshal.FreeCoTaskMem(key_native);
+ Marshal.FreeCoTaskMem(value_native);
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_MatchmakingOptions_SetCreateRoomDataStoreString")]
+ private static extern void ovr_MatchmakingOptions_SetCreateRoomDataStoreString_Native(IntPtr handle, IntPtr key, IntPtr value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_MatchmakingOptions_ClearCreateRoomDataStore(IntPtr handle);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_MatchmakingOptions_SetCreateRoomJoinPolicy(IntPtr handle, RoomJoinPolicy value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_MatchmakingOptions_SetCreateRoomMaxUsers(IntPtr handle, uint value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_MatchmakingOptions_AddEnqueueAdditionalUser(IntPtr handle, UInt64 value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_MatchmakingOptions_ClearEnqueueAdditionalUsers(IntPtr handle);
+
+ public static void ovr_MatchmakingOptions_SetEnqueueDataSettingsInt(IntPtr handle, string key, int value) {
+ IntPtr key_native = StringToNative(key);
+ ovr_MatchmakingOptions_SetEnqueueDataSettingsInt_Native(handle, key_native, value);
+ Marshal.FreeCoTaskMem(key_native);
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_MatchmakingOptions_SetEnqueueDataSettingsInt")]
+ private static extern void ovr_MatchmakingOptions_SetEnqueueDataSettingsInt_Native(IntPtr handle, IntPtr key, int value);
+
+ public static void ovr_MatchmakingOptions_SetEnqueueDataSettingsDouble(IntPtr handle, string key, double value) {
+ IntPtr key_native = StringToNative(key);
+ ovr_MatchmakingOptions_SetEnqueueDataSettingsDouble_Native(handle, key_native, value);
+ Marshal.FreeCoTaskMem(key_native);
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_MatchmakingOptions_SetEnqueueDataSettingsDouble")]
+ private static extern void ovr_MatchmakingOptions_SetEnqueueDataSettingsDouble_Native(IntPtr handle, IntPtr key, double value);
+
+ public static void ovr_MatchmakingOptions_SetEnqueueDataSettingsString(IntPtr handle, string key, string value) {
+ IntPtr key_native = StringToNative(key);
+ IntPtr value_native = StringToNative(value);
+ ovr_MatchmakingOptions_SetEnqueueDataSettingsString_Native(handle, key_native, value_native);
+ Marshal.FreeCoTaskMem(key_native);
+ Marshal.FreeCoTaskMem(value_native);
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_MatchmakingOptions_SetEnqueueDataSettingsString")]
+ private static extern void ovr_MatchmakingOptions_SetEnqueueDataSettingsString_Native(IntPtr handle, IntPtr key, IntPtr value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_MatchmakingOptions_ClearEnqueueDataSettings(IntPtr handle);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_MatchmakingOptions_SetEnqueueIsDebug(IntPtr handle, bool value);
+
+ public static void ovr_MatchmakingOptions_SetEnqueueQueryKey(IntPtr handle, string value) {
+ IntPtr value_native = StringToNative(value);
+ ovr_MatchmakingOptions_SetEnqueueQueryKey_Native(handle, value_native);
+ Marshal.FreeCoTaskMem(value_native);
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_MatchmakingOptions_SetEnqueueQueryKey")]
+ private static extern void ovr_MatchmakingOptions_SetEnqueueQueryKey_Native(IntPtr handle, IntPtr value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_RoomOptions_Create();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_RoomOptions_Destroy(IntPtr handle);
+
+ public static void ovr_RoomOptions_SetDataStoreString(IntPtr handle, string key, string value) {
+ IntPtr key_native = StringToNative(key);
+ IntPtr value_native = StringToNative(value);
+ ovr_RoomOptions_SetDataStoreString_Native(handle, key_native, value_native);
+ Marshal.FreeCoTaskMem(key_native);
+ Marshal.FreeCoTaskMem(value_native);
+ }
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl, EntryPoint="ovr_RoomOptions_SetDataStoreString")]
+ private static extern void ovr_RoomOptions_SetDataStoreString_Native(IntPtr handle, IntPtr key, IntPtr value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_RoomOptions_ClearDataStore(IntPtr handle);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_RoomOptions_SetExcludeRecentlyMet(IntPtr handle, bool value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_RoomOptions_SetMaxUserResults(IntPtr handle, uint value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_RoomOptions_SetOrdering(IntPtr handle, UserOrdering value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_RoomOptions_SetRecentlyMetTimeWindow(IntPtr handle, TimeWindow value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_RoomOptions_SetRoomId(IntPtr handle, UInt64 value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_RoomOptions_SetTurnOffUpdates(IntPtr handle, bool value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_UserOptions_Create();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_UserOptions_Destroy(IntPtr handle);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_UserOptions_SetMaxUsers(IntPtr handle, uint value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_UserOptions_AddServiceProvider(IntPtr handle, ServiceProvider value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_UserOptions_ClearServiceProviders(IntPtr handle);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_UserOptions_SetTimeWindow(IntPtr handle, TimeWindow value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr ovr_VoipOptions_Create();
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_VoipOptions_Destroy(IntPtr handle);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_VoipOptions_SetBitrateForNewConnections(IntPtr handle, VoipBitrate value);
+
+ [DllImport(DLL_NAME, CallingConvention=CallingConvention.Cdecl)]
+ public static extern void ovr_VoipOptions_SetCreateNewConnectionUseDtx(IntPtr handle, VoipDtxState value);
+ }
+}
diff --git a/Assets/Oculus/Platform/Scripts/CAPI.cs.meta b/Assets/Oculus/Platform/Scripts/CAPI.cs.meta
new file mode 100644
index 0000000..29c81a1
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/CAPI.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 34df728904a3e304b84b2facc7fac233
+timeCreated: 1523486798
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/Callback.cs b/Assets/Oculus/Platform/Scripts/Callback.cs
new file mode 100644
index 0000000..5751208
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/Callback.cs
@@ -0,0 +1,164 @@
+namespace Oculus.Platform
+{
+ using UnityEngine;
+ using System;
+ using System.Collections.Generic;
+
+ public static class Callback
+ {
+ #region Notification Callbacks: Exposed through Oculus.Platform.Platform
+
+ internal static void SetNotificationCallback(Message.MessageType type, Message.Callback callback)
+ {
+ if (callback == null) {
+ throw new Exception ("Cannot provide a null notification callback.");
+ }
+
+ notificationCallbacks[type] = new RequestCallback(callback);
+
+ if (type == Message.MessageType.Notification_Room_InviteAccepted)
+ {
+ FlushRoomInviteNotificationQueue();
+ }
+ }
+
+ internal static void SetNotificationCallback(Message.MessageType type, Message.Callback callback)
+ {
+ if (callback == null) {
+ throw new Exception ("Cannot provide a null notification callback.");
+ }
+
+ notificationCallbacks[type] = new RequestCallback(callback);
+ }
+ #endregion
+
+ #region OnComplete Callbacks: Exposed through Oculus.Platform.Request
+ internal static void OnComplete(Request request, Message.Callback callback)
+ {
+ requestIDsToCallbacks[request.RequestID] = new RequestCallback(callback);
+ }
+ internal static void OnComplete(Request request, Message.Callback callback)
+ {
+ requestIDsToCallbacks[request.RequestID] = new RequestCallback(callback);
+ }
+
+ internal static void RunCallbacks()
+ {
+ while (true)
+ {
+ var msg = Platform.Message.PopMessage();
+ if (msg == null)
+ {
+ break;
+ }
+
+ HandleMessage(msg);
+ }
+
+ }
+
+ internal static void RunLimitedCallbacks(uint limit)
+ {
+ for (var i = 0; i < limit; ++i)
+ {
+ var msg = Platform.Message.PopMessage();
+ if (msg == null)
+ {
+ break;
+ }
+
+ HandleMessage(msg);
+ }
+ }
+ #endregion
+
+ #region Callback Internals
+ private static Dictionary requestIDsToCallbacks = new Dictionary();
+ private static Dictionary notificationCallbacks = new Dictionary();
+
+ private static bool hasRegisteredRoomInviteNotificationHandler = false;
+ private static List pendingRoomInviteNotifications = new List();
+ private static void FlushRoomInviteNotificationQueue() {
+ hasRegisteredRoomInviteNotificationHandler = true;
+ foreach (Message msg in pendingRoomInviteNotifications) {
+ HandleMessage(msg);
+ }
+ pendingRoomInviteNotifications.Clear();
+ }
+
+ private class RequestCallback
+ {
+ private Message.Callback messageCallback;
+
+ public RequestCallback() { }
+
+ public RequestCallback(Message.Callback callback)
+ {
+ this.messageCallback = callback;
+ }
+
+ public virtual void HandleMessage(Message msg)
+ {
+ if (messageCallback != null)
+ {
+ messageCallback(msg);
+ }
+ }
+ }
+
+ private sealed class RequestCallback : RequestCallback
+ {
+ private Message.Callback callback;
+ public RequestCallback(Message.Callback callback)
+ {
+ this.callback = callback;
+ }
+
+ public override void HandleMessage(Message msg)
+ {
+ if (callback != null)
+ {
+
+ // We need to queue up GameInvites because the callback runner will be called before a handler has beeen set.
+ if (!hasRegisteredRoomInviteNotificationHandler && msg.Type == Message.MessageType.Notification_Room_InviteAccepted)
+ {
+ pendingRoomInviteNotifications.Add(msg);
+ return;
+ }
+
+ if (msg is Message)
+ {
+ callback((Message)msg);
+ }
+ else
+ {
+ Debug.LogError("Unable to handle message: " + msg.GetType());
+ }
+ }
+ }
+ }
+
+ private static void HandleMessage(Message msg)
+ {
+ RequestCallback callbackHolder;
+ if (requestIDsToCallbacks.TryGetValue(msg.RequestID, out callbackHolder))
+ {
+ try
+ {
+ callbackHolder.HandleMessage(msg);
+ }
+ // even if there are exceptions, we should clean up cleanly
+ finally
+ {
+ requestIDsToCallbacks.Remove(msg.RequestID);
+ }
+ }
+ else if (notificationCallbacks.TryGetValue(msg.Type, out callbackHolder))
+ {
+ callbackHolder.HandleMessage(msg);
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/Assets/Oculus/Platform/Scripts/Callback.cs.meta b/Assets/Oculus/Platform/Scripts/Callback.cs.meta
new file mode 100644
index 0000000..7457f31
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/Callback.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 41d3953e2b7bcb44d91f97e274f9f64d
+timeCreated: 1523486798
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/CallbackRunner.cs b/Assets/Oculus/Platform/Scripts/CallbackRunner.cs
new file mode 100644
index 0000000..a178363
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/CallbackRunner.cs
@@ -0,0 +1,38 @@
+using System.Runtime.InteropServices;
+using UnityEngine;
+
+namespace Oculus.Platform
+{
+ public class CallbackRunner : MonoBehaviour
+ {
+ [DllImport(CAPI.DLL_NAME)]
+ static extern void ovr_UnityResetTestPlatform();
+
+ public bool IsPersistantBetweenSceneLoads = true;
+
+ void Awake()
+ {
+ var existingCallbackRunner = FindObjectOfType();
+ if (existingCallbackRunner != this)
+ {
+ Debug.LogWarning("You only need one instance of CallbackRunner");
+ }
+ if (IsPersistantBetweenSceneLoads)
+ {
+ DontDestroyOnLoad(gameObject);
+ }
+ }
+
+ void Update()
+ {
+ Request.RunCallbacks();
+ }
+
+ void OnDestroy()
+ {
+#if UNITY_EDITOR
+ ovr_UnityResetTestPlatform();
+#endif
+ }
+ }
+}
diff --git a/Assets/Oculus/Platform/Scripts/CallbackRunner.cs.meta b/Assets/Oculus/Platform/Scripts/CallbackRunner.cs.meta
new file mode 100644
index 0000000..19c1982
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/CallbackRunner.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f2caa5c6ad39b6742a7ddc2c273976c7
+timeCreated: 1523486801
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/CloudStorageDataStatus.cs b/Assets/Oculus/Platform/Scripts/CloudStorageDataStatus.cs
new file mode 100644
index 0000000..d9d5c5d
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/CloudStorageDataStatus.cs
@@ -0,0 +1,33 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+namespace Oculus.Platform
+{
+
+ using Description = System.ComponentModel.DescriptionAttribute;
+
+ public enum CloudStorageDataStatus : int
+ {
+ [Description("UNKNOWN")]
+ Unknown,
+
+ [Description("IN_SYNC")]
+ InSync,
+
+ [Description("NEEDS_DOWNLOAD")]
+ NeedsDownload,
+
+ [Description("REMOTE_DOWNLOADING")]
+ RemoteDownloading,
+
+ [Description("NEEDS_UPLOAD")]
+ NeedsUpload,
+
+ [Description("LOCAL_UPLOADING")]
+ LocalUploading,
+
+ [Description("IN_CONFLICT")]
+ InConflict,
+
+ }
+
+}
diff --git a/Assets/Oculus/Platform/Scripts/CloudStorageDataStatus.cs.meta b/Assets/Oculus/Platform/Scripts/CloudStorageDataStatus.cs.meta
new file mode 100644
index 0000000..be2ccef
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/CloudStorageDataStatus.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 4708b605fe779fe4384e9166eb21b85c
+timeCreated: 1523486798
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/CloudStorageUpdateStatus.cs b/Assets/Oculus/Platform/Scripts/CloudStorageUpdateStatus.cs
new file mode 100644
index 0000000..524d88e
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/CloudStorageUpdateStatus.cs
@@ -0,0 +1,24 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+namespace Oculus.Platform
+{
+
+ using Description = System.ComponentModel.DescriptionAttribute;
+
+ public enum CloudStorageUpdateStatus : int
+ {
+ [Description("UNKNOWN")]
+ Unknown,
+
+ [Description("OK")]
+ Ok,
+
+ [Description("BETTER_VERSION_STORED")]
+ BetterVersionStored,
+
+ [Description("MANUAL_MERGE_REQUIRED")]
+ ManualMergeRequired,
+
+ }
+
+}
diff --git a/Assets/Oculus/Platform/Scripts/CloudStorageUpdateStatus.cs.meta b/Assets/Oculus/Platform/Scripts/CloudStorageUpdateStatus.cs.meta
new file mode 100644
index 0000000..e6713e7
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/CloudStorageUpdateStatus.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 2b620ce00fa534d4f8f006da66d05d35
+timeCreated: 1523486798
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/Decoder.cs b/Assets/Oculus/Platform/Scripts/Decoder.cs
new file mode 100644
index 0000000..afa1021
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/Decoder.cs
@@ -0,0 +1,45 @@
+//This file is deprecated. Use the high level voip system instead:
+// https://developer3.oculus.com/documentation/platform/latest/concepts/dg-core-content/#dg-cc-voip
+#if false
+using UnityEngine;
+using System.Collections;
+using System;
+
+namespace Oculus.Platform {
+
+ public class Decoder : IDisposable {
+
+ IntPtr dec;
+ float[] decodedScratchBuffer;
+
+ public Decoder() {
+ dec = CAPI.ovr_Voip_CreateDecoder();
+ decodedScratchBuffer = new float[480 * 10];
+ }
+
+ public void Dispose()
+ {
+ if (dec != IntPtr.Zero)
+ {
+ CAPI.ovr_Voip_DestroyEncoder(dec);
+ dec = IntPtr.Zero;
+ }
+ }
+
+ public float[] Decode(byte[] data) {
+ CAPI.ovr_VoipDecoder_Decode(dec, data, (uint)data.Length);
+
+ ulong gotSize = (ulong)CAPI.ovr_VoipDecoder_GetDecodedPCM(dec, decodedScratchBuffer, (UIntPtr)decodedScratchBuffer.Length);
+
+ if (gotSize > 0)
+ {
+ float[] pcm = new float[gotSize];
+ Array.Copy(decodedScratchBuffer, pcm, (int)gotSize);
+ return pcm;
+ }
+
+ return null;
+ }
+ }
+}
+#endif
diff --git a/Assets/Oculus/Platform/Scripts/Decoder.cs.meta b/Assets/Oculus/Platform/Scripts/Decoder.cs.meta
new file mode 100644
index 0000000..e582648
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/Decoder.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 731601605a2facb4b8f3f211411a4693
+timeCreated: 1523486799
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/Encoder.cs b/Assets/Oculus/Platform/Scripts/Encoder.cs
new file mode 100644
index 0000000..f336537
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/Encoder.cs
@@ -0,0 +1,45 @@
+//This file is deprecated. Use the high level voip system instead:
+// https://developer3.oculus.com/documentation/platform/latest/concepts/dg-core-content/#dg-cc-voip
+#if false
+using UnityEngine;
+using System.Collections;
+using System;
+
+
+namespace Oculus.Platform {
+
+public class Encoder : IDisposable {
+ IntPtr enc;
+
+ public Encoder() {
+ enc = CAPI.ovr_Voip_CreateEncoder();
+ }
+
+ public void Dispose()
+ {
+ if (enc != IntPtr.Zero)
+ {
+ CAPI.ovr_Voip_DestroyEncoder(enc);
+ enc = IntPtr.Zero;
+ }
+ }
+
+ public byte[] Encode(float[] samples) {
+ CAPI.ovr_VoipEncoder_AddPCM(enc, samples, (uint)samples.Length);
+
+ ulong size = (ulong)CAPI.ovr_VoipEncoder_GetCompressedDataSize(enc);
+ if(size > 0) {
+ byte[] compressedData = new byte[size]; //TODO 10376403 - pool this
+ ulong sizeRead = (ulong)CAPI.ovr_VoipEncoder_GetCompressedData(enc, compressedData, (UIntPtr)size);
+
+ if (sizeRead != size)
+ {
+ throw new Exception("Read size differed from reported size");
+ }
+ return compressedData;
+ }
+ return null;
+ }
+ }
+}
+#endif
diff --git a/Assets/Oculus/Platform/Scripts/Encoder.cs.meta b/Assets/Oculus/Platform/Scripts/Encoder.cs.meta
new file mode 100644
index 0000000..927095b
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/Encoder.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f6ac5c6788e50aa4f9ce8e07d8605023
+timeCreated: 1523486801
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/IMicrophone.cs b/Assets/Oculus/Platform/Scripts/IMicrophone.cs
new file mode 100644
index 0000000..992c0f3
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/IMicrophone.cs
@@ -0,0 +1,15 @@
+using UnityEngine;
+using System.Collections;
+using System;
+
+namespace Oculus.Platform
+{
+ public interface IMicrophone
+ {
+ void Start();
+
+ void Stop();
+
+ float[] Update();
+ }
+}
diff --git a/Assets/Oculus/Platform/Scripts/IMicrophone.cs.meta b/Assets/Oculus/Platform/Scripts/IMicrophone.cs.meta
new file mode 100644
index 0000000..8736236
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/IMicrophone.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 3bd3a2d44aa26f148bb61b2735a67028
+timeCreated: 1523486798
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/IVoipPCMSource.cs b/Assets/Oculus/Platform/Scripts/IVoipPCMSource.cs
new file mode 100644
index 0000000..5b46d60
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/IVoipPCMSource.cs
@@ -0,0 +1,13 @@
+namespace Oculus.Platform
+{
+ public interface IVoipPCMSource
+ {
+ int GetPCM(float[] dest, int length);
+
+ void SetSenderID(ulong senderID);
+
+ void Update();
+
+ int PeekSizeElements();
+ }
+}
diff --git a/Assets/Oculus/Platform/Scripts/IVoipPCMSource.cs.meta b/Assets/Oculus/Platform/Scripts/IVoipPCMSource.cs.meta
new file mode 100644
index 0000000..a3fd33e
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/IVoipPCMSource.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 0dd741d18ee018045936b0f2f9c9b2f7
+timeCreated: 1523486797
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/KeyValuePairType.cs b/Assets/Oculus/Platform/Scripts/KeyValuePairType.cs
new file mode 100644
index 0000000..284edf6
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/KeyValuePairType.cs
@@ -0,0 +1,24 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+namespace Oculus.Platform
+{
+
+ using Description = System.ComponentModel.DescriptionAttribute;
+
+ public enum KeyValuePairType : int
+ {
+ [Description("STRING")]
+ String,
+
+ [Description("INTEGER")]
+ Int,
+
+ [Description("DOUBLE")]
+ Double,
+
+ [Description("UNKNOWN")]
+ Unknown,
+
+ }
+
+}
diff --git a/Assets/Oculus/Platform/Scripts/KeyValuePairType.cs.meta b/Assets/Oculus/Platform/Scripts/KeyValuePairType.cs.meta
new file mode 100644
index 0000000..1aed36d
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/KeyValuePairType.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 652351552fa9f694690760ab0f94c90a
+timeCreated: 1523486799
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/LaunchType.cs b/Assets/Oculus/Platform/Scripts/LaunchType.cs
new file mode 100644
index 0000000..f6f0fd3
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/LaunchType.cs
@@ -0,0 +1,27 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+namespace Oculus.Platform
+{
+
+ using Description = System.ComponentModel.DescriptionAttribute;
+
+ public enum LaunchType : int
+ {
+ [Description("UNKNOWN")]
+ Unknown,
+
+ [Description("NORMAL")]
+ Normal,
+
+ [Description("INVITE")]
+ Invite,
+
+ [Description("COORDINATED")]
+ Coordinated,
+
+ [Description("DEEPLINK")]
+ Deeplink,
+
+ }
+
+}
diff --git a/Assets/Oculus/Platform/Scripts/LaunchType.cs.meta b/Assets/Oculus/Platform/Scripts/LaunchType.cs.meta
new file mode 100644
index 0000000..56a8153
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/LaunchType.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 19914a3b196ab06439965a325ac1da12
+timeCreated: 1523486797
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/LeaderboardFilterType.cs b/Assets/Oculus/Platform/Scripts/LeaderboardFilterType.cs
new file mode 100644
index 0000000..226a06c
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/LeaderboardFilterType.cs
@@ -0,0 +1,21 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+namespace Oculus.Platform
+{
+
+ using Description = System.ComponentModel.DescriptionAttribute;
+
+ public enum LeaderboardFilterType : int
+ {
+ [Description("NONE")]
+ None,
+
+ [Description("FRIENDS")]
+ Friends,
+
+ [Description("UNKNOWN")]
+ Unknown,
+
+ }
+
+}
diff --git a/Assets/Oculus/Platform/Scripts/LeaderboardFilterType.cs.meta b/Assets/Oculus/Platform/Scripts/LeaderboardFilterType.cs.meta
new file mode 100644
index 0000000..0b5e14a
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/LeaderboardFilterType.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: cb882419e00a3424b83ba7ff72a0d3fd
+timeCreated: 1523486800
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/LeaderboardStartAt.cs b/Assets/Oculus/Platform/Scripts/LeaderboardStartAt.cs
new file mode 100644
index 0000000..520825f
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/LeaderboardStartAt.cs
@@ -0,0 +1,24 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+namespace Oculus.Platform
+{
+
+ using Description = System.ComponentModel.DescriptionAttribute;
+
+ public enum LeaderboardStartAt : int
+ {
+ [Description("TOP")]
+ Top,
+
+ [Description("CENTERED_ON_VIEWER")]
+ CenteredOnViewer,
+
+ [Description("CENTERED_ON_VIEWER_OR_TOP")]
+ CenteredOnViewerOrTop,
+
+ [Description("UNKNOWN")]
+ Unknown,
+
+ }
+
+}
diff --git a/Assets/Oculus/Platform/Scripts/LeaderboardStartAt.cs.meta b/Assets/Oculus/Platform/Scripts/LeaderboardStartAt.cs.meta
new file mode 100644
index 0000000..e3de3a7
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/LeaderboardStartAt.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 8e8523caca9803145a3e871dca67c0e5
+timeCreated: 1523486799
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/LivestreamingAudience.cs b/Assets/Oculus/Platform/Scripts/LivestreamingAudience.cs
new file mode 100644
index 0000000..47638e1
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/LivestreamingAudience.cs
@@ -0,0 +1,24 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+namespace Oculus.Platform
+{
+
+ using Description = System.ComponentModel.DescriptionAttribute;
+
+ public enum LivestreamingAudience : int
+ {
+ [Description("UNKNOWN")]
+ Unknown,
+
+ [Description("PUBLIC")]
+ Public,
+
+ [Description("FRIENDS")]
+ Friends,
+
+ [Description("ONLY_ME")]
+ OnlyMe,
+
+ }
+
+}
diff --git a/Assets/Oculus/Platform/Scripts/LivestreamingAudience.cs.meta b/Assets/Oculus/Platform/Scripts/LivestreamingAudience.cs.meta
new file mode 100644
index 0000000..e651404
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/LivestreamingAudience.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 73f525341669b334cb7179690b1545fd
+timeCreated: 1523486799
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/LivestreamingMicrophoneStatus.cs b/Assets/Oculus/Platform/Scripts/LivestreamingMicrophoneStatus.cs
new file mode 100644
index 0000000..c0bc23e
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/LivestreamingMicrophoneStatus.cs
@@ -0,0 +1,21 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+namespace Oculus.Platform
+{
+
+ using Description = System.ComponentModel.DescriptionAttribute;
+
+ public enum LivestreamingMicrophoneStatus : int
+ {
+ [Description("UNKNOWN")]
+ Unknown,
+
+ [Description("MICROPHONE_ON")]
+ MicrophoneOn,
+
+ [Description("MICROPHONE_OFF")]
+ MicrophoneOff,
+
+ }
+
+}
diff --git a/Assets/Oculus/Platform/Scripts/LivestreamingMicrophoneStatus.cs.meta b/Assets/Oculus/Platform/Scripts/LivestreamingMicrophoneStatus.cs.meta
new file mode 100644
index 0000000..03bb94a
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/LivestreamingMicrophoneStatus.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 200430e18cf27164c95796b4c3456b1f
+timeCreated: 1523486797
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/LivestreamingStartStatus.cs b/Assets/Oculus/Platform/Scripts/LivestreamingStartStatus.cs
new file mode 100644
index 0000000..47ab25c
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/LivestreamingStartStatus.cs
@@ -0,0 +1,30 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+namespace Oculus.Platform
+{
+
+ using Description = System.ComponentModel.DescriptionAttribute;
+
+ public enum LivestreamingStartStatus : int
+ {
+ [Description("SUCCESS")]
+ Success = 1,
+
+ [Description("UNKNOWN")]
+ Unknown = 0,
+
+ [Description("NO_PACKAGE_SET")]
+ NoPackageSet = -1,
+
+ [Description("NO_FB_CONNECT")]
+ NoFbConnect = -2,
+
+ [Description("NO_SESSION_ID")]
+ NoSessionId = -3,
+
+ [Description("MISSING_PARAMETERS")]
+ MissingParameters = -4,
+
+ }
+
+}
diff --git a/Assets/Oculus/Platform/Scripts/LivestreamingStartStatus.cs.meta b/Assets/Oculus/Platform/Scripts/LivestreamingStartStatus.cs.meta
new file mode 100644
index 0000000..3773b54
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/LivestreamingStartStatus.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 278e551ec7e02bf419ea10f24a330083
+timeCreated: 1523486798
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/MatchmakingCriterionImportance.cs b/Assets/Oculus/Platform/Scripts/MatchmakingCriterionImportance.cs
new file mode 100644
index 0000000..fbb5cde
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/MatchmakingCriterionImportance.cs
@@ -0,0 +1,27 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+namespace Oculus.Platform
+{
+
+ using Description = System.ComponentModel.DescriptionAttribute;
+
+ public enum MatchmakingCriterionImportance : int
+ {
+ [Description("REQUIRED")]
+ Required,
+
+ [Description("HIGH")]
+ High,
+
+ [Description("MEDIUM")]
+ Medium,
+
+ [Description("LOW")]
+ Low,
+
+ [Description("UNKNOWN")]
+ Unknown,
+
+ }
+
+}
diff --git a/Assets/Oculus/Platform/Scripts/MatchmakingCriterionImportance.cs.meta b/Assets/Oculus/Platform/Scripts/MatchmakingCriterionImportance.cs.meta
new file mode 100644
index 0000000..0380168
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/MatchmakingCriterionImportance.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 030eb76e37b12924e96e8b450291a220
+timeCreated: 1523486796
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/MatchmakingOptions.cs b/Assets/Oculus/Platform/Scripts/MatchmakingOptions.cs
new file mode 100644
index 0000000..fd552f6
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/MatchmakingOptions.cs
@@ -0,0 +1,77 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+namespace Oculus.Platform
+{
+ using System;
+ using System.Collections;
+ using Oculus.Platform.Models;
+ using System.Collections.Generic;
+ using UnityEngine;
+
+ public class MatchmakingOptions {
+
+ public MatchmakingOptions() {
+ Handle = CAPI.ovr_MatchmakingOptions_Create();
+ }
+
+ public void SetCreateRoomDataStore(string key, string value) {
+ CAPI.ovr_MatchmakingOptions_SetCreateRoomDataStoreString(Handle, key, value);
+ }
+
+ public void ClearCreateRoomDataStore() {
+ CAPI.ovr_MatchmakingOptions_ClearCreateRoomDataStore(Handle);
+ }
+
+ public void SetCreateRoomJoinPolicy(RoomJoinPolicy value) {
+ CAPI.ovr_MatchmakingOptions_SetCreateRoomJoinPolicy(Handle, value);
+ }
+
+ public void SetCreateRoomMaxUsers(uint value) {
+ CAPI.ovr_MatchmakingOptions_SetCreateRoomMaxUsers(Handle, value);
+ }
+
+ public void AddEnqueueAdditionalUser(UInt64 userID) {
+ CAPI.ovr_MatchmakingOptions_AddEnqueueAdditionalUser(Handle, userID);
+ }
+
+ public void ClearEnqueueAdditionalUsers() {
+ CAPI.ovr_MatchmakingOptions_ClearEnqueueAdditionalUsers(Handle);
+ }
+
+ public void SetEnqueueDataSettings(string key, int value) {
+ CAPI.ovr_MatchmakingOptions_SetEnqueueDataSettingsInt(Handle, key, value);
+ }
+
+ public void SetEnqueueDataSettings(string key, double value) {
+ CAPI.ovr_MatchmakingOptions_SetEnqueueDataSettingsDouble(Handle, key, value);
+ }
+
+ public void SetEnqueueDataSettings(string key, string value) {
+ CAPI.ovr_MatchmakingOptions_SetEnqueueDataSettingsString(Handle, key, value);
+ }
+
+ public void ClearEnqueueDataSettings() {
+ CAPI.ovr_MatchmakingOptions_ClearEnqueueDataSettings(Handle);
+ }
+
+ public void SetEnqueueIsDebug(bool value) {
+ CAPI.ovr_MatchmakingOptions_SetEnqueueIsDebug(Handle, value);
+ }
+
+ public void SetEnqueueQueryKey(string value) {
+ CAPI.ovr_MatchmakingOptions_SetEnqueueQueryKey(Handle, value);
+ }
+
+
+ // For passing to native C
+ public static explicit operator IntPtr(MatchmakingOptions options) {
+ return options != null ? options.Handle : IntPtr.Zero;
+ }
+
+ ~MatchmakingOptions() {
+ CAPI.ovr_MatchmakingOptions_Destroy(Handle);
+ }
+
+ IntPtr Handle;
+ }
+}
diff --git a/Assets/Oculus/Platform/Scripts/MatchmakingOptions.cs.meta b/Assets/Oculus/Platform/Scripts/MatchmakingOptions.cs.meta
new file mode 100644
index 0000000..96fc8c8
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/MatchmakingOptions.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f9b3e7ffb96e6594ea296771b88d7243
+timeCreated: 1523486801
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/MatchmakingStatApproach.cs b/Assets/Oculus/Platform/Scripts/MatchmakingStatApproach.cs
new file mode 100644
index 0000000..88036ce
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/MatchmakingStatApproach.cs
@@ -0,0 +1,21 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+namespace Oculus.Platform
+{
+
+ using Description = System.ComponentModel.DescriptionAttribute;
+
+ public enum MatchmakingStatApproach : int
+ {
+ [Description("UNKNOWN")]
+ Unknown,
+
+ [Description("TRAILING")]
+ Trailing,
+
+ [Description("SWINGY")]
+ Swingy,
+
+ }
+
+}
diff --git a/Assets/Oculus/Platform/Scripts/MatchmakingStatApproach.cs.meta b/Assets/Oculus/Platform/Scripts/MatchmakingStatApproach.cs.meta
new file mode 100644
index 0000000..2e9ab06
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/MatchmakingStatApproach.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 03cfe1746fc38ae468f5a6a910bf0379
+timeCreated: 1523486797
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/MediaContentType.cs b/Assets/Oculus/Platform/Scripts/MediaContentType.cs
new file mode 100644
index 0000000..bf3e20f
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/MediaContentType.cs
@@ -0,0 +1,18 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+namespace Oculus.Platform
+{
+
+ using Description = System.ComponentModel.DescriptionAttribute;
+
+ public enum MediaContentType : int
+ {
+ [Description("UNKNOWN")]
+ Unknown,
+
+ [Description("PHOTO")]
+ Photo,
+
+ }
+
+}
diff --git a/Assets/Oculus/Platform/Scripts/MediaContentType.cs.meta b/Assets/Oculus/Platform/Scripts/MediaContentType.cs.meta
new file mode 100644
index 0000000..efbf93a
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/MediaContentType.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 4a27c72682442f94abd98f97d87f9cad
+timeCreated: 1523486798
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Oculus/Platform/Scripts/Message.cs b/Assets/Oculus/Platform/Scripts/Message.cs
new file mode 100644
index 0000000..6ffa424
--- /dev/null
+++ b/Assets/Oculus/Platform/Scripts/Message.cs
@@ -0,0 +1,1388 @@
+// This file was @generated with LibOVRPlatform/codegen/main. Do not modify it!
+
+namespace Oculus.Platform
+{
+ using UnityEngine;
+ using System;
+ using System.Collections;
+ using System.Collections.Generic;
+ using Oculus.Platform.Models;
+
+ public abstract class Message : Message
+ {
+ public new delegate void Callback(Message message);
+ public Message(IntPtr c_message) : base(c_message) {
+ if (!IsError)
+ {
+ data = GetDataFromMessage(c_message);
+ }
+ }
+
+ public T Data { get { return data; } }
+ protected abstract T GetDataFromMessage(IntPtr c_message);
+ private T data;
+ }
+
+ public class Message
+ {
+ public delegate void Callback(Message message);
+ public Message(IntPtr c_message)
+ {
+ type = (MessageType)CAPI.ovr_Message_GetType(c_message);
+ var isError = CAPI.ovr_Message_IsError(c_message);
+ requestID = CAPI.ovr_Message_GetRequestID(c_message);
+
+ if (isError)
+ {
+ IntPtr errorHandle = CAPI.ovr_Message_GetError(c_message);
+ error = new Error(
+ CAPI.ovr_Error_GetCode(errorHandle),
+ CAPI.ovr_Error_GetMessage(errorHandle),
+ CAPI.ovr_Error_GetHttpCode(errorHandle));
+ }
+ else if (Core.LogMessages)
+ {
+ var message = CAPI.ovr_Message_GetString(c_message);
+ if (message != null)
+ {
+ Debug.Log(message);
+ }
+ else
+ {
+ Debug.Log(string.Format("null message string {0}", c_message));
+ }
+ }
+ }
+
+ ~Message()
+ {
+ }
+
+ // Keep this enum in sync with ovrMessageType in OVR_Platform.h
+ public enum MessageType : uint
+ { //TODO - rename this to type; it's already in Message class
+ Unknown,
+
+ Achievements_AddCount = 0x03E76231,
+ Achievements_AddFields = 0x14AA2129,
+ Achievements_GetAllDefinitions = 0x03D3458D,
+ Achievements_GetAllProgress = 0x4F9FDE1D,
+ Achievements_GetDefinitionsByName = 0x629101BC,
+ Achievements_GetNextAchievementDefinitionArrayPage = 0x2A7DD255,
+ Achievements_GetNextAchievementProgressArrayPage = 0x2F42E727,
+ Achievements_GetProgressByName = 0x152663B1,
+ Achievements_Unlock = 0x593CCBDD,
+ ApplicationLifecycle_GetRegisteredPIDs = 0x04E5CF62,
+ ApplicationLifecycle_GetSessionKey = 0x3AAF591D,
+ ApplicationLifecycle_RegisterSessionKey = 0x4DB6AFF8,
+ Application_GetVersion = 0x68670A0E,
+ Application_LaunchOtherApp = 0x54E2D1F8,
+ AssetFile_Delete = 0x6D5D7886,
+ AssetFile_DeleteById = 0x5AE8CD52,
+ AssetFile_DeleteByName = 0x420AC1CF,
+ AssetFile_Download = 0x11449FC5,
+ AssetFile_DownloadById = 0x2D008992,
+ AssetFile_DownloadByName = 0x6336CEFA,
+ AssetFile_DownloadCancel = 0x080AD3C7,
+ AssetFile_DownloadCancelById = 0x51659514,
+ AssetFile_DownloadCancelByName = 0x446AECFA,
+ AssetFile_GetList = 0x4AFC6F74,
+ AssetFile_Status = 0x02D32F60,
+ AssetFile_StatusById = 0x5D955D38,
+ AssetFile_StatusByName = 0x41CFDA50,
+ CloudStorage_Delete = 0x28DA456D,
+ CloudStorage_GetNextCloudStorageMetadataArrayPage = 0x5C07A2EF,
+ CloudStorage_Load = 0x40846B41,
+ CloudStorage_LoadBucketMetadata = 0x7327A50D,
+ CloudStorage_LoadConflictMetadata = 0x445A52F2,
+ CloudStorage_LoadHandle = 0x326ADA36,
+ CloudStorage_LoadMetadata = 0x03E6A292,
+ CloudStorage_ResolveKeepLocal = 0x30588D05,
+ CloudStorage_ResolveKeepRemote = 0x7525A306,
+ CloudStorage_Save = 0x4BBB5C2E,
+ Entitlement_GetIsViewerEntitled = 0x186B58B1,
+ IAP_ConsumePurchase = 0x1FBB72D9,
+ IAP_GetNextProductArrayPage = 0x1BD94AAF,
+ IAP_GetNextPurchaseArrayPage = 0x47570A95,
+ IAP_GetProductsBySKU = 0x7E9ACAF5,
+ IAP_GetViewerPurchases = 0x3A0F8419,
+ IAP_LaunchCheckoutFlow = 0x3F9B0D0D,
+ LanguagePack_GetCurrent = 0x1F90F0D5,
+ Leaderboard_GetEntries = 0x5DB3474C,
+ Leaderboard_GetEntriesAfterRank = 0x18378BEF,
+ Leaderboard_GetNextEntries = 0x4E207CD9,
+ Leaderboard_GetPreviousEntries = 0x4901DAC0,
+ Leaderboard_WriteEntry = 0x117FC8FE,
+ Livestreaming_GetStatus = 0x489A6995,
+ Livestreaming_PauseStream = 0x369C7683,
+ Livestreaming_ResumeStream = 0x22526D8F,
+ Matchmaking_Browse = 0x1E6532C8,
+ Matchmaking_Browse2 = 0x66429E5B,
+ Matchmaking_Cancel = 0x206849AF,
+ Matchmaking_Cancel2 = 0x10FE8DD4,
+ Matchmaking_CreateAndEnqueueRoom = 0x604C5DC8,
+ Matchmaking_CreateAndEnqueueRoom2 = 0x295BEADB,
+ Matchmaking_CreateRoom = 0x033B132A,
+ Matchmaking_CreateRoom2 = 0x496DA384,
+ Matchmaking_Enqueue = 0x40C16C71,
+ Matchmaking_Enqueue2 = 0x121212B5,
+ Matchmaking_EnqueueRoom = 0x708A4064,
+ Matchmaking_EnqueueRoom2 = 0x5528DBA4,
+ Matchmaking_GetAdminSnapshot = 0x3C215F94,
+ Matchmaking_GetStats = 0x42FC9438,
+ Matchmaking_JoinRoom = 0x4D32D7FD,
+ Matchmaking_ReportResultInsecure = 0x1A36D18D,
+ Matchmaking_StartMatch = 0x44D40945,
+ Media_ShareToFacebook = 0x00E38AEF,
+ Notification_GetNextRoomInviteNotificationArrayPage = 0x0621FB77,
+ Notification_GetRoomInvites = 0x6F916B92,
+ Notification_MarkAsRead = 0x717259E3,
+ Party_GetCurrent = 0x47933760,
+ Room_CreateAndJoinPrivate = 0x75D6E377,
+ Room_CreateAndJoinPrivate2 = 0x5A3A6243,
+ Room_Get = 0x659A8FB8,
+ Room_GetCurrent = 0x09A6A504,
+ Room_GetCurrentForUser = 0x0E0017E5,
+ Room_GetInvitableUsers = 0x1E325792,
+ Room_GetInvitableUsers2 = 0x4F53E8B0,
+ Room_GetModeratedRooms = 0x0983FD77,
+ Room_GetNextRoomArrayPage = 0x4E8379C6,
+ Room_InviteUser = 0x4129EC13,
+ Room_Join = 0x16CA8F09,
+ Room_Join2 = 0x4DAB1C42,
+ Room_KickUser = 0x49835736,
+ Room_LaunchInvitableUserFlow = 0x323FE273,
+ Room_Leave = 0x72382475,
+ Room_SetDescription = 0x3044852F,
+ Room_UpdateDataStore = 0x026E4028,
+ Room_UpdateMembershipLockStatus = 0x370BB7AC,
+ Room_UpdateOwner = 0x32B63D1D,
+ Room_UpdatePrivateRoomJoinPolicy = 0x1141029B,
+ User_Get = 0x6BCF9E47,
+ User_GetAccessToken = 0x06A85ABE,
+ User_GetLoggedInUser = 0x436F345D,
+ User_GetLoggedInUserFriends = 0x587C2A8D,
+ User_GetLoggedInUserFriendsAndRooms = 0x5E870B87,
+ User_GetLoggedInUserRecentlyMetUsersAndRooms = 0x295FBA30,
+ User_GetNextUserAndRoomArrayPage = 0x7FBDD2DF,
+ User_GetNextUserArrayPage = 0x267CF743,
+ User_GetOrgScopedID = 0x18F0B01B,
+ User_GetSdkAccounts = 0x67526A83,
+ User_GetUserProof = 0x22810483,
+ User_LaunchFriendRequestFlow = 0x0904B598,
+ User_LaunchProfile = 0x0A397297,
+ Voip_SetSystemVoipSuppressed = 0x453FC9AA,
+
+ /// Sent when a launch intent is received (for both cold and warm starts). The
+ /// payload is the type of the intent. ApplicationLifecycle.GetLaunchDetails()
+ /// should be called to get the other details.
+ Notification_ApplicationLifecycle_LaunchIntentChanged = 0x04B34CA3,
+
+ /// Sent to indicate download progress for asset files.
+ Notification_AssetFile_DownloadUpdate = 0x2FDD0CCD,
+
+ /// Sent to indicate that more data has been read or an error occured.
+ Notification_HTTP_Transfer = 0x7DD46E2F,
+
+ /// Indicates that the livestreaming session has been updated. You can use this
+ /// information to throttle your game performance or increase CPU/GPU
+ /// performance. Use Message.GetLivestreamingStatus() to extract the updated
+ /// livestreaming status.
+ Notification_Livestreaming_StatusChange = 0x2247596E,
+
+ /// Indicates that a match has been found, for example after calling
+ /// Matchmaking.Enqueue(). Use Message.GetRoom() to extract the matchmaking
+ /// room.
+ Notification_Matchmaking_MatchFound = 0x0BC3FCD7,
+
+ /// Indicates that a connection has been established or there's been an error.
+ /// Use NetworkingPeer.GetState() to get the result; as above,
+ /// NetworkingPeer.GetID() returns the ID of the peer this message is for.
+ Notification_Networking_ConnectionStateChange = 0x5E02D49A,
+
+ /// Indicates that another user is attempting to establish a P2P connection
+ /// with us. Use NetworkingPeer.GetID() to extract the ID of the peer.
+ Notification_Networking_PeerConnectRequest = 0x4D31E2CF,
+
+ /// Generated in response to Net.Ping(). Either contains ping time in
+ /// microseconds or indicates that there was a timeout.
+ Notification_Networking_PingResult = 0x51153012,
+
+ /// Indicates that the user has accepted an invitation, for example in Oculus
+ /// Home. Use Message.GetString() to extract the ID of the room that the user
+ /// has been inivted to as a string. Then call ovrID_FromString() to parse it
+ /// into an ovrID.
+ ///
+ /// Note that you must call Room.Join() if you want to actually join the room.
+ Notification_Room_InviteAccepted = 0x6D1071B1,
+
+ /// Handle this to notify the user when they've received an invitation to join
+ /// a room in your game. You can use this in lieu of, or in addition to,
+ /// polling for room invitations via Notification.GetRoomInviteNotifications().
+ Notification_Room_InviteReceived = 0x6A499D54,
+
+ /// Indicates that the current room has been updated. Use Message.GetRoom() to
+ /// extract the updated room.
+ Notification_Room_RoomUpdate = 0x60EC3C2F,
+
+ /// Sent when another user is attempting to establish a VoIP connection. Use
+ /// Message.GetNetworkingPeer() to extract information about the user, and
+ /// Voip.Accept() to accept the connection.
+ Notification_Voip_ConnectRequest = 0x36243816,
+
+ /// Sent to indicate that the state of the VoIP connection changed. Use
+ /// Message.GetNetworkingPeer() and NetworkingPeer.GetState() to extract the
+ /// current state.
+ Notification_Voip_StateChange = 0x34EFA660,
+
+ /// Sent to indicate that some part of the overall state of SystemVoip has
+ /// changed. Use Message.GetSystemVoipState() and the properties of
+ /// SystemVoipState to extract the state that triggered the notification.
+ ///
+ /// Note that the state may have changed further since the notification was
+ /// generated, and that you may call the `GetSystemVoip...()` family of
+ /// functions at any time to get the current state directly.
+ Notification_Voip_SystemVoipState = 0x58D254A5,
+
+
+ Platform_InitializeWithAccessToken = 0x35692F2B,
+ Platform_InitializeStandaloneOculus = 0x51F8CE0C,
+ Platform_InitializeAndroidAsynchronous = 0x1AD307B4,
+ Platform_InitializeWindowsAsynchronous = 0x6DA7BA8F,
+ };
+
+ public MessageType Type { get { return type; } }
+ public bool IsError { get { return error != null; } }
+ public ulong RequestID { get { return requestID; } }
+
+ private MessageType type;
+ private ulong requestID;
+ private Error error;
+
+ public virtual Error GetError() { return error; }
+ public virtual PingResult GetPingResult() { return null; }
+ public virtual NetworkingPeer GetNetworkingPeer() { return null; }
+ public virtual HttpTransferUpdate GetHttpTransferUpdate() { return null; }
+
+ public virtual PlatformInitialize GetPlatformInitialize() { return null; }
+
+ public virtual AbuseReportRecording GetAbuseReportRecording() { return null; }
+ public virtual AchievementDefinitionList GetAchievementDefinitions() { return null; }
+ public virtual AchievementProgressList GetAchievementProgressList() { return null; }
+ public virtual AchievementUpdate GetAchievementUpdate() { return null; }
+ public virtual ApplicationVersion GetApplicationVersion() { return null; }
+ public virtual AssetDetails GetAssetDetails() { return null; }
+ public virtual AssetDetailsList GetAssetDetailsList() { return null; }
+ public virtual AssetFileDeleteResult GetAssetFileDeleteResult() { return null; }
+ public virtual AssetFileDownloadCancelResult GetAssetFileDownloadCancelResult() { return null; }
+ public virtual AssetFileDownloadResult GetAssetFileDownloadResult() { return null; }
+ public virtual AssetFileDownloadUpdate GetAssetFileDownloadUpdate() { return null; }
+ public virtual CloudStorageConflictMetadata GetCloudStorageConflictMetadata() { return null; }
+ public virtual CloudStorageData GetCloudStorageData() { return null; }
+ public virtual CloudStorageMetadata GetCloudStorageMetadata() { return null; }
+ public virtual CloudStorageMetadataList GetCloudStorageMetadataList() { return null; }
+ public virtual CloudStorageUpdateResponse GetCloudStorageUpdateResponse() { return null; }
+ public virtual InstalledApplicationList GetInstalledApplicationList() { return null; }
+ public virtual LaunchBlockFlowResult GetLaunchBlockFlowResult() { return null; }
+ public virtual LaunchFriendRequestFlowResult GetLaunchFriendRequestFlowResult() { return null; }
+ public virtual LaunchUnblockFlowResult GetLaunchUnblockFlowResult() { return null; }
+ public virtual bool GetLeaderboardDidUpdate() { return false; }
+ public virtual LeaderboardEntryList GetLeaderboardEntryList() { return null; }
+ public virtual LinkedAccountList GetLinkedAccountList() { return null; }
+ public virtual LivestreamingApplicationStatus GetLivestreamingApplicationStatus() { return null; }
+ public virtual LivestreamingStartResult GetLivestreamingStartResult() { return null; }
+ public virtual LivestreamingStatus GetLivestreamingStatus() { return null; }
+ public virtual LivestreamingVideoStats GetLivestreamingVideoStats() { return null; }
+ public virtual MatchmakingAdminSnapshot GetMatchmakingAdminSnapshot() { return null; }
+ public virtual MatchmakingBrowseResult GetMatchmakingBrowseResult() { return null; }
+ public virtual MatchmakingEnqueueResult GetMatchmakingEnqueueResult() { return null; }
+ public virtual MatchmakingEnqueueResultAndRoom GetMatchmakingEnqueueResultAndRoom() { return null; }
+ public virtual MatchmakingStats GetMatchmakingStats() { return null; }
+ public virtual OrgScopedID GetOrgScopedID() { return null; }
+ public virtual Party GetParty() { return null; }
+ public virtual PartyID GetPartyID() { return null; }
+ public virtual PidList GetPidList() { return null; }
+ public virtual ProductList GetProductList() { return null; }
+ public virtual Purchase GetPurchase() { return null; }
+ public virtual PurchaseList GetPurchaseList() { return null; }
+ public virtual Room GetRoom() { return null; }
+ public virtual RoomInviteNotification GetRoomInviteNotification() { return null; }
+ public virtual RoomInviteNotificationList GetRoomInviteNotificationList() { return null; }
+ public virtual RoomList GetRoomList() { return null; }
+ public virtual SdkAccountList GetSdkAccountList() { return null; }
+ public virtual ShareMediaResult GetShareMediaResult() { return null; }
+ public virtual string GetString() { return null; }
+ public virtual SystemPermission GetSystemPermission() { return null; }
+ public virtual SystemVoipState GetSystemVoipState() { return null; }
+ public virtual User GetUser() { return null; }
+ public virtual UserAndRoomList GetUserAndRoomList() { return null; }
+ public virtual UserList GetUserList() { return null; }
+ public virtual UserProof GetUserProof() { return null; }
+ public virtual UserReportID GetUserReportID() { return null; }
+
+ internal static Message ParseMessageHandle(IntPtr messageHandle)
+ {
+ if (messageHandle.ToInt64() == 0)
+ {
+ return null;
+ }
+
+ Message message = null;
+ Message.MessageType message_type = (Message.MessageType)CAPI.ovr_Message_GetType(messageHandle);
+
+ switch(message_type) {
+ // OVR_MESSAGE_TYPE_START
+ case Message.MessageType.Achievements_GetAllDefinitions:
+ case Message.MessageType.Achievements_GetDefinitionsByName:
+ case Message.MessageType.Achievements_GetNextAchievementDefinitionArrayPage:
+ message = new MessageWithAchievementDefinitions(messageHandle);
+ break;
+
+ case Message.MessageType.Achievements_GetAllProgress:
+ case Message.MessageType.Achievements_GetNextAchievementProgressArrayPage:
+ case Message.MessageType.Achievements_GetProgressByName:
+ message = new MessageWithAchievementProgressList(messageHandle);
+ break;
+
+ case Message.MessageType.Achievements_AddCount:
+ case Message.MessageType.Achievements_AddFields:
+ case Message.MessageType.Achievements_Unlock:
+ message = new MessageWithAchievementUpdate(messageHandle);
+ break;
+
+ case Message.MessageType.Application_GetVersion:
+ message = new MessageWithApplicationVersion(messageHandle);
+ break;
+
+ case Message.MessageType.AssetFile_Status:
+ case Message.MessageType.AssetFile_StatusById:
+ case Message.MessageType.AssetFile_StatusByName:
+ case Message.MessageType.LanguagePack_GetCurrent:
+ message = new MessageWithAssetDetails(messageHandle);
+ break;
+
+ case Message.MessageType.AssetFile_GetList:
+ message = new MessageWithAssetDetailsList(messageHandle);
+ break;
+
+ case Message.MessageType.AssetFile_Delete:
+ case Message.MessageType.AssetFile_DeleteById:
+ case Message.MessageType.AssetFile_DeleteByName:
+ message = new MessageWithAssetFileDeleteResult(messageHandle);
+ break;
+
+ case Message.MessageType.AssetFile_DownloadCancel:
+ case Message.MessageType.AssetFile_DownloadCancelById:
+ case Message.MessageType.AssetFile_DownloadCancelByName:
+ message = new MessageWithAssetFileDownloadCancelResult(messageHandle);
+ break;
+
+ case Message.MessageType.AssetFile_Download:
+ case Message.MessageType.AssetFile_DownloadById:
+ case Message.MessageType.AssetFile_DownloadByName:
+ message = new MessageWithAssetFileDownloadResult(messageHandle);
+ break;
+
+ case Message.MessageType.Notification_AssetFile_DownloadUpdate:
+ message = new MessageWithAssetFileDownloadUpdate(messageHandle);
+ break;
+
+ case Message.MessageType.CloudStorage_LoadConflictMetadata:
+ message = new MessageWithCloudStorageConflictMetadata(messageHandle);
+ break;
+
+ case Message.MessageType.CloudStorage_Load:
+ case Message.MessageType.CloudStorage_LoadHandle:
+ message = new MessageWithCloudStorageData(messageHandle);
+ break;
+
+ case Message.MessageType.CloudStorage_LoadMetadata:
+ message = new MessageWithCloudStorageMetadataUnderLocal(messageHandle);
+ break;
+
+ case Message.MessageType.CloudStorage_GetNextCloudStorageMetadataArrayPage:
+ case Message.MessageType.CloudStorage_LoadBucketMetadata:
+ message = new MessageWithCloudStorageMetadataList(messageHandle);
+ break;
+
+ case Message.MessageType.CloudStorage_Delete:
+ case Message.MessageType.CloudStorage_ResolveKeepLocal:
+ case Message.MessageType.CloudStorage_ResolveKeepRemote:
+ case Message.MessageType.CloudStorage_Save:
+ message = new MessageWithCloudStorageUpdateResponse(messageHandle);
+ break;
+
+ case Message.MessageType.ApplicationLifecycle_RegisterSessionKey:
+ case Message.MessageType.Entitlement_GetIsViewerEntitled:
+ case Message.MessageType.IAP_ConsumePurchase:
+ case Message.MessageType.Matchmaking_Cancel:
+ case Message.MessageType.Matchmaking_Cancel2:
+ case Message.MessageType.Matchmaking_ReportResultInsecure:
+ case Message.MessageType.Matchmaking_StartMatch:
+ case Message.MessageType.Notification_MarkAsRead:
+ case Message.MessageType.Room_LaunchInvitableUserFlow:
+ case Message.MessageType.Room_UpdateOwner:
+ case Message.MessageType.User_LaunchProfile:
+ message = new Message(messageHandle);
+ break;
+
+ case Message.MessageType.User_LaunchFriendRequestFlow:
+ message = new MessageWithLaunchFriendRequestFlowResult(messageHandle);
+ break;
+
+ case Message.MessageType.Leaderboard_GetEntries:
+ case Message.MessageType.Leaderboard_GetEntriesAfterRank:
+ case Message.MessageType.Leaderboard_GetNextEntries:
+ case Message.MessageType.Leaderboard_GetPreviousEntries:
+ message = new MessageWithLeaderboardEntryList(messageHandle);
+ break;
+
+ case Message.MessageType.Leaderboard_WriteEntry:
+ message = new MessageWithLeaderboardDidUpdate(messageHandle);
+ break;
+
+ case Message.MessageType.Livestreaming_GetStatus:
+ case Message.MessageType.Livestreaming_PauseStream:
+ case Message.MessageType.Livestreaming_ResumeStream:
+ case Message.MessageType.Notification_Livestreaming_StatusChange:
+ message = new MessageWithLivestreamingStatus(messageHandle);
+ break;
+
+ case Message.MessageType.Matchmaking_GetAdminSnapshot:
+ message = new MessageWithMatchmakingAdminSnapshot(messageHandle);
+ break;
+
+ case Message.MessageType.Matchmaking_Browse:
+ case Message.MessageType.Matchmaking_Browse2:
+ message = new MessageWithMatchmakingBrowseResult(messageHandle);
+ break;
+
+ case Message.MessageType.Matchmaking_Enqueue:
+ case Message.MessageType.Matchmaking_Enqueue2:
+ case Message.MessageType.Matchmaking_EnqueueRoom:
+ case Message.MessageType.Matchmaking_EnqueueRoom2:
+ message = new MessageWithMatchmakingEnqueueResult(messageHandle);
+ break;
+
+ case Message.MessageType.Matchmaking_CreateAndEnqueueRoom:
+ case Message.MessageType.Matchmaking_CreateAndEnqueueRoom2:
+ message = new MessageWithMatchmakingEnqueueResultAndRoom(messageHandle);
+ break;
+
+ case Message.MessageType.Matchmaking_GetStats:
+ message = new MessageWithMatchmakingStatsUnderMatchmakingStats(messageHandle);
+ break;
+
+ case Message.MessageType.User_GetOrgScopedID:
+ message = new MessageWithOrgScopedID(messageHandle);
+ break;
+
+ case Message.MessageType.Party_GetCurrent:
+ message = new MessageWithPartyUnderCurrentParty(messageHandle);
+ break;
+
+ case Message.MessageType.ApplicationLifecycle_GetRegisteredPIDs:
+ message = new MessageWithPidList(messageHandle);
+ break;
+
+ case Message.MessageType.IAP_GetNextProductArrayPage:
+ case Message.MessageType.IAP_GetProductsBySKU:
+ message = new MessageWithProductList(messageHandle);
+ break;
+
+ case Message.MessageType.IAP_LaunchCheckoutFlow:
+ message = new MessageWithPurchase(messageHandle);
+ break;
+
+ case Message.MessageType.IAP_GetNextPurchaseArrayPage:
+ case Message.MessageType.IAP_GetViewerPurchases:
+ message = new MessageWithPurchaseList(messageHandle);
+ break;
+
+ case Message.MessageType.Room_Get:
+ message = new MessageWithRoom(messageHandle);
+ break;
+
+ case Message.MessageType.Room_GetCurrent:
+ case Message.MessageType.Room_GetCurrentForUser:
+ message = new MessageWithRoomUnderCurrentRoom(messageHandle);
+ break;
+
+ case Message.MessageType.Matchmaking_CreateRoom:
+ case Message.MessageType.Matchmaking_CreateRoom2:
+ case Message.MessageType.Matchmaking_JoinRoom:
+ case Message.MessageType.Notification_Room_RoomUpdate:
+ case Message.MessageType.Room_CreateAndJoinPrivate:
+ case Message.MessageType.Room_CreateAndJoinPrivate2:
+ case Message.MessageType.Room_InviteUser:
+ case Message.MessageType.Room_Join:
+ case Message.MessageType.Room_Join2:
+ case Message.MessageType.Room_KickUser:
+ case Message.MessageType.Room_Leave:
+ case Message.MessageType.Room_SetDescription:
+ case Message.MessageType.Room_UpdateDataStore:
+ case Message.MessageType.Room_UpdateMembershipLockStatus:
+ case Message.MessageType.Room_UpdatePrivateRoomJoinPolicy:
+ message = new MessageWithRoomUnderViewerRoom(messageHandle);
+ break;
+
+ case Message.MessageType.Room_GetModeratedRooms:
+ case Message.MessageType.Room_GetNextRoomArrayPage:
+ message = new MessageWithRoomList(messageHandle);
+ break;
+
+ case Message.MessageType.Notification_Room_InviteReceived:
+ message = new MessageWithRoomInviteNotification(messageHandle);
+ break;
+
+ case Message.MessageType.Notification_GetNextRoomInviteNotificationArrayPage:
+ case Message.MessageType.Notification_GetRoomInvites:
+ message = new MessageWithRoomInviteNotificationList(messageHandle);
+ break;
+
+ case Message.MessageType.User_GetSdkAccounts:
+ message = new MessageWithSdkAccountList(messageHandle);
+ break;
+
+ case Message.MessageType.Media_ShareToFacebook:
+ message = new MessageWithShareMediaResult(messageHandle);
+ break;
+
+ case Message.MessageType.ApplicationLifecycle_GetSessionKey:
+ case Message.MessageType.Application_LaunchOtherApp:
+ case Message.MessageType.Notification_ApplicationLifecycle_LaunchIntentChanged:
+ case Message.MessageType.Notification_Room_InviteAccepted:
+ case Message.MessageType.User_GetAccessToken:
+ message = new MessageWithString(messageHandle);
+ break;
+
+ case Message.MessageType.Voip_SetSystemVoipSuppressed:
+ message = new MessageWithSystemVoipState(messageHandle);
+ break;
+
+ case Message.MessageType.User_Get:
+ case Message.MessageType.User_GetLoggedInUser:
+ message = new MessageWithUser(messageHandle);
+ break;
+
+ case Message.MessageType.User_GetLoggedInUserFriendsAndRooms:
+ case Message.MessageType.User_GetLoggedInUserRecentlyMetUsersAndRooms:
+ case Message.MessageType.User_GetNextUserAndRoomArrayPage:
+ message = new MessageWithUserAndRoomList(messageHandle);
+ break;
+
+ case Message.MessageType.Room_GetInvitableUsers:
+ case Message.MessageType.Room_GetInvitableUsers2:
+ case Message.MessageType.User_GetLoggedInUserFriends:
+ case Message.MessageType.User_GetNextUserArrayPage:
+ message = new MessageWithUserList(messageHandle);
+ break;
+
+ case Message.MessageType.User_GetUserProof:
+ message = new MessageWithUserProof(messageHandle);
+ break;
+
+ case Message.MessageType.Notification_Networking_ConnectionStateChange:
+ case Message.MessageType.Notification_Networking_PeerConnectRequest:
+ message = new MessageWithNetworkingPeer(messageHandle);
+ break;
+
+ case Message.MessageType.Notification_Networking_PingResult:
+ message = new MessageWithPingResult(messageHandle);
+ break;
+
+ case Message.MessageType.Notification_Matchmaking_MatchFound:
+ message = new MessageWithMatchmakingNotification(messageHandle);
+ break;
+
+ case Message.MessageType.Notification_Voip_ConnectRequest:
+ case Message.MessageType.Notification_Voip_StateChange:
+ message = new MessageWithNetworkingPeer(messageHandle);
+ break;
+
+ case Message.MessageType.Notification_Voip_SystemVoipState:
+ message = new MessageWithSystemVoipState(messageHandle);
+ break;
+
+ case Message.MessageType.Notification_HTTP_Transfer:
+ message = new MessageWithHttpTransferUpdate(messageHandle);
+ break;
+
+ case Message.MessageType.Platform_InitializeWithAccessToken:
+ case Message.MessageType.Platform_InitializeStandaloneOculus:
+ case Message.MessageType.Platform_InitializeAndroidAsynchronous:
+ case Message.MessageType.Platform_InitializeWindowsAsynchronous:
+ message = new MessageWithPlatformInitialize(messageHandle);
+ break;
+
+ default:
+ message = PlatformInternal.ParseMessageHandle(messageHandle, message_type);
+ if (message == null)
+ {
+ Debug.LogError(string.Format("Unrecognized message type {0}\n", message_type));
+ }
+ break;
+ // OVR_MESSAGE_TYPE_END
+ }
+
+ return message;
+ }
+
+ public static Message PopMessage()
+ {
+ if (!Core.IsInitialized())
+ {
+ return null;
+ }
+
+ var messageHandle = CAPI.ovr_PopMessage();
+
+ Message message = ParseMessageHandle(messageHandle);
+
+ CAPI.ovr_FreeMessage(messageHandle);
+ return message;
+ }
+
+ internal delegate Message ExtraMessageTypesHandler(IntPtr messageHandle, Message.MessageType message_type);
+ internal static ExtraMessageTypesHandler HandleExtraMessageTypes { set; private get; }
+ }
+
+ public class MessageWithAbuseReportRecording : Message
+ {
+ public MessageWithAbuseReportRecording(IntPtr c_message) : base(c_message) { }
+ public override AbuseReportRecording GetAbuseReportRecording() { return Data; }
+ protected override AbuseReportRecording GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetAbuseReportRecording(msg);
+ return new AbuseReportRecording(obj);
+ }
+
+ }
+ public class MessageWithAchievementDefinitions : Message
+ {
+ public MessageWithAchievementDefinitions(IntPtr c_message) : base(c_message) { }
+ public override AchievementDefinitionList GetAchievementDefinitions() { return Data; }
+ protected override AchievementDefinitionList GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetAchievementDefinitionArray(msg);
+ return new AchievementDefinitionList(obj);
+ }
+
+ }
+ public class MessageWithAchievementProgressList : Message
+ {
+ public MessageWithAchievementProgressList(IntPtr c_message) : base(c_message) { }
+ public override AchievementProgressList GetAchievementProgressList() { return Data; }
+ protected override AchievementProgressList GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetAchievementProgressArray(msg);
+ return new AchievementProgressList(obj);
+ }
+
+ }
+ public class MessageWithAchievementUpdate : Message
+ {
+ public MessageWithAchievementUpdate(IntPtr c_message) : base(c_message) { }
+ public override AchievementUpdate GetAchievementUpdate() { return Data; }
+ protected override AchievementUpdate GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetAchievementUpdate(msg);
+ return new AchievementUpdate(obj);
+ }
+
+ }
+ public class MessageWithApplicationVersion : Message
+ {
+ public MessageWithApplicationVersion(IntPtr c_message) : base(c_message) { }
+ public override ApplicationVersion GetApplicationVersion() { return Data; }
+ protected override ApplicationVersion GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetApplicationVersion(msg);
+ return new ApplicationVersion(obj);
+ }
+
+ }
+ public class MessageWithAssetDetails : Message
+ {
+ public MessageWithAssetDetails(IntPtr c_message) : base(c_message) { }
+ public override AssetDetails GetAssetDetails() { return Data; }
+ protected override AssetDetails GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetAssetDetails(msg);
+ return new AssetDetails(obj);
+ }
+
+ }
+ public class MessageWithAssetDetailsList : Message
+ {
+ public MessageWithAssetDetailsList(IntPtr c_message) : base(c_message) { }
+ public override AssetDetailsList GetAssetDetailsList() { return Data; }
+ protected override AssetDetailsList GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetAssetDetailsArray(msg);
+ return new AssetDetailsList(obj);
+ }
+
+ }
+ public class MessageWithAssetFileDeleteResult : Message
+ {
+ public MessageWithAssetFileDeleteResult(IntPtr c_message) : base(c_message) { }
+ public override AssetFileDeleteResult GetAssetFileDeleteResult() { return Data; }
+ protected override AssetFileDeleteResult GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetAssetFileDeleteResult(msg);
+ return new AssetFileDeleteResult(obj);
+ }
+
+ }
+ public class MessageWithAssetFileDownloadCancelResult : Message
+ {
+ public MessageWithAssetFileDownloadCancelResult(IntPtr c_message) : base(c_message) { }
+ public override AssetFileDownloadCancelResult GetAssetFileDownloadCancelResult() { return Data; }
+ protected override AssetFileDownloadCancelResult GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetAssetFileDownloadCancelResult(msg);
+ return new AssetFileDownloadCancelResult(obj);
+ }
+
+ }
+ public class MessageWithAssetFileDownloadResult : Message
+ {
+ public MessageWithAssetFileDownloadResult(IntPtr c_message) : base(c_message) { }
+ public override AssetFileDownloadResult GetAssetFileDownloadResult() { return Data; }
+ protected override AssetFileDownloadResult GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetAssetFileDownloadResult(msg);
+ return new AssetFileDownloadResult(obj);
+ }
+
+ }
+ public class MessageWithAssetFileDownloadUpdate : Message
+ {
+ public MessageWithAssetFileDownloadUpdate(IntPtr c_message) : base(c_message) { }
+ public override AssetFileDownloadUpdate GetAssetFileDownloadUpdate() { return Data; }
+ protected override AssetFileDownloadUpdate GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetAssetFileDownloadUpdate(msg);
+ return new AssetFileDownloadUpdate(obj);
+ }
+
+ }
+ public class MessageWithCloudStorageConflictMetadata : Message
+ {
+ public MessageWithCloudStorageConflictMetadata(IntPtr c_message) : base(c_message) { }
+ public override CloudStorageConflictMetadata GetCloudStorageConflictMetadata() { return Data; }
+ protected override CloudStorageConflictMetadata GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetCloudStorageConflictMetadata(msg);
+ return new CloudStorageConflictMetadata(obj);
+ }
+
+ }
+ public class MessageWithCloudStorageData : Message
+ {
+ public MessageWithCloudStorageData(IntPtr c_message) : base(c_message) { }
+ public override CloudStorageData GetCloudStorageData() { return Data; }
+ protected override CloudStorageData GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetCloudStorageData(msg);
+ return new CloudStorageData(obj);
+ }
+
+ }
+ public class MessageWithCloudStorageMetadataUnderLocal : Message
+ {
+ public MessageWithCloudStorageMetadataUnderLocal(IntPtr c_message) : base(c_message) { }
+ public override CloudStorageMetadata GetCloudStorageMetadata() { return Data; }
+ protected override CloudStorageMetadata GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetCloudStorageMetadata(msg);
+ return new CloudStorageMetadata(obj);
+ }
+
+ }
+ public class MessageWithCloudStorageMetadataList : Message
+ {
+ public MessageWithCloudStorageMetadataList(IntPtr c_message) : base(c_message) { }
+ public override CloudStorageMetadataList GetCloudStorageMetadataList() { return Data; }
+ protected override CloudStorageMetadataList GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetCloudStorageMetadataArray(msg);
+ return new CloudStorageMetadataList(obj);
+ }
+
+ }
+ public class MessageWithCloudStorageUpdateResponse : Message
+ {
+ public MessageWithCloudStorageUpdateResponse(IntPtr c_message) : base(c_message) { }
+ public override CloudStorageUpdateResponse GetCloudStorageUpdateResponse() { return Data; }
+ protected override CloudStorageUpdateResponse GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetCloudStorageUpdateResponse(msg);
+ return new CloudStorageUpdateResponse(obj);
+ }
+
+ }
+ public class MessageWithInstalledApplicationList : Message
+ {
+ public MessageWithInstalledApplicationList(IntPtr c_message) : base(c_message) { }
+ public override InstalledApplicationList GetInstalledApplicationList() { return Data; }
+ protected override InstalledApplicationList GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetInstalledApplicationArray(msg);
+ return new InstalledApplicationList(obj);
+ }
+
+ }
+ public class MessageWithLaunchBlockFlowResult : Message
+ {
+ public MessageWithLaunchBlockFlowResult(IntPtr c_message) : base(c_message) { }
+ public override LaunchBlockFlowResult GetLaunchBlockFlowResult() { return Data; }
+ protected override LaunchBlockFlowResult GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetLaunchBlockFlowResult(msg);
+ return new LaunchBlockFlowResult(obj);
+ }
+
+ }
+ public class MessageWithLaunchFriendRequestFlowResult : Message
+ {
+ public MessageWithLaunchFriendRequestFlowResult(IntPtr c_message) : base(c_message) { }
+ public override LaunchFriendRequestFlowResult GetLaunchFriendRequestFlowResult() { return Data; }
+ protected override LaunchFriendRequestFlowResult GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetLaunchFriendRequestFlowResult(msg);
+ return new LaunchFriendRequestFlowResult(obj);
+ }
+
+ }
+ public class MessageWithLaunchUnblockFlowResult : Message
+ {
+ public MessageWithLaunchUnblockFlowResult(IntPtr c_message) : base(c_message) { }
+ public override LaunchUnblockFlowResult GetLaunchUnblockFlowResult() { return Data; }
+ protected override LaunchUnblockFlowResult GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetLaunchUnblockFlowResult(msg);
+ return new LaunchUnblockFlowResult(obj);
+ }
+
+ }
+ public class MessageWithLeaderboardEntryList : Message
+ {
+ public MessageWithLeaderboardEntryList(IntPtr c_message) : base(c_message) { }
+ public override LeaderboardEntryList GetLeaderboardEntryList() { return Data; }
+ protected override LeaderboardEntryList GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetLeaderboardEntryArray(msg);
+ return new LeaderboardEntryList(obj);
+ }
+
+ }
+ public class MessageWithLinkedAccountList : Message
+ {
+ public MessageWithLinkedAccountList(IntPtr c_message) : base(c_message) { }
+ public override LinkedAccountList GetLinkedAccountList() { return Data; }
+ protected override LinkedAccountList GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetLinkedAccountArray(msg);
+ return new LinkedAccountList(obj);
+ }
+
+ }
+ public class MessageWithLivestreamingApplicationStatus : Message
+ {
+ public MessageWithLivestreamingApplicationStatus(IntPtr c_message) : base(c_message) { }
+ public override LivestreamingApplicationStatus GetLivestreamingApplicationStatus() { return Data; }
+ protected override LivestreamingApplicationStatus GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetLivestreamingApplicationStatus(msg);
+ return new LivestreamingApplicationStatus(obj);
+ }
+
+ }
+ public class MessageWithLivestreamingStartResult : Message
+ {
+ public MessageWithLivestreamingStartResult(IntPtr c_message) : base(c_message) { }
+ public override LivestreamingStartResult GetLivestreamingStartResult() { return Data; }
+ protected override LivestreamingStartResult GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetLivestreamingStartResult(msg);
+ return new LivestreamingStartResult(obj);
+ }
+
+ }
+ public class MessageWithLivestreamingStatus : Message
+ {
+ public MessageWithLivestreamingStatus(IntPtr c_message) : base(c_message) { }
+ public override LivestreamingStatus GetLivestreamingStatus() { return Data; }
+ protected override LivestreamingStatus GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetLivestreamingStatus(msg);
+ return new LivestreamingStatus(obj);
+ }
+
+ }
+ public class MessageWithLivestreamingVideoStats : Message
+ {
+ public MessageWithLivestreamingVideoStats(IntPtr c_message) : base(c_message) { }
+ public override LivestreamingVideoStats GetLivestreamingVideoStats() { return Data; }
+ protected override LivestreamingVideoStats GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetLivestreamingVideoStats(msg);
+ return new LivestreamingVideoStats(obj);
+ }
+
+ }
+ public class MessageWithMatchmakingAdminSnapshot : Message
+ {
+ public MessageWithMatchmakingAdminSnapshot(IntPtr c_message) : base(c_message) { }
+ public override MatchmakingAdminSnapshot GetMatchmakingAdminSnapshot() { return Data; }
+ protected override MatchmakingAdminSnapshot GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetMatchmakingAdminSnapshot(msg);
+ return new MatchmakingAdminSnapshot(obj);
+ }
+
+ }
+ public class MessageWithMatchmakingEnqueueResult : Message
+ {
+ public MessageWithMatchmakingEnqueueResult(IntPtr c_message) : base(c_message) { }
+ public override MatchmakingEnqueueResult GetMatchmakingEnqueueResult() { return Data; }
+ protected override MatchmakingEnqueueResult GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetMatchmakingEnqueueResult(msg);
+ return new MatchmakingEnqueueResult(obj);
+ }
+
+ }
+ public class MessageWithMatchmakingEnqueueResultAndRoom : Message
+ {
+ public MessageWithMatchmakingEnqueueResultAndRoom(IntPtr c_message) : base(c_message) { }
+ public override MatchmakingEnqueueResultAndRoom GetMatchmakingEnqueueResultAndRoom() { return Data; }
+ protected override MatchmakingEnqueueResultAndRoom GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetMatchmakingEnqueueResultAndRoom(msg);
+ return new MatchmakingEnqueueResultAndRoom(obj);
+ }
+
+ }
+ public class MessageWithMatchmakingStatsUnderMatchmakingStats : Message
+ {
+ public MessageWithMatchmakingStatsUnderMatchmakingStats(IntPtr c_message) : base(c_message) { }
+ public override MatchmakingStats GetMatchmakingStats() { return Data; }
+ protected override MatchmakingStats GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetMatchmakingStats(msg);
+ return new MatchmakingStats(obj);
+ }
+
+ }
+ public class MessageWithOrgScopedID : Message
+ {
+ public MessageWithOrgScopedID(IntPtr c_message) : base(c_message) { }
+ public override OrgScopedID GetOrgScopedID() { return Data; }
+ protected override OrgScopedID GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetOrgScopedID(msg);
+ return new OrgScopedID(obj);
+ }
+
+ }
+ public class MessageWithParty : Message
+ {
+ public MessageWithParty(IntPtr c_message) : base(c_message) { }
+ public override Party GetParty() { return Data; }
+ protected override Party GetDataFromMessage(IntPtr c_message)
+ {
+ var msg = CAPI.ovr_Message_GetNativeMessage(c_message);
+ var obj = CAPI.ovr_Message_GetParty(msg);
+ return new Party(obj);
+ }
+
+ }
+ public class MessageWithPartyUnderCurrentParty : Message