Initial Commit

This commit is contained in:
2025-07-04 20:33:06 +03:00
commit 8f09347ae0
9219 changed files with 2447903 additions and 0 deletions
@@ -0,0 +1,29 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 484800a18d70d2d4386ee3f42ef24113, type: 3}
m_Name: HandTracking
m_EditorClassIdentifier:
id: 8b26b298-7bf4-490e-b245-a039c0184303
version: 1
blockName: Hand Tracking
description: Hand models that follow the movement of your hands
sdk: 0
tags: []
thumbnail: {fileID: 2800000, guid: d53aa1789d7879a43a2e31d261a304b7, type: 3}
displayOnContentTab: 1
experimental: 0
order: -4
prefab: {fileID: 1870938896605422, guid: 929a4e1a0ccfe2048b9390905f78fc4d, type: 3}
dependencies:
- e47682b9-c270-40b1-b16d-90b627a5ce1b
isSingleton: 1
usageInstructions:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d5f88f354e8735b4eb8fe8e0e7d5d278
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 52fdba1f4c629584999e34821455bce7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,85 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: DefaultHandMaterial
m_Shader: {fileID: 4800000, guid: cfa50fc6e259b524ea01ec7dde0f108d, type: 3}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
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: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _FresnelPower: 0.215
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _HandAlpha: 1
- _Metallic: 0
- _MinVisibleAlpha: 0.164
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _RimFactor: 0.922
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _ColorBottom: {r: 0.36154413, g: 0.560827, b: 0.8088235, a: 1}
- _ColorPrimary: {r: 0.75735295, g: 0.75735295, b: 0.75735295, a: 1}
- _ColorTop: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: aa70c70787230f248b33d8a0ce1a6c3d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,89 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SkeletonBoneMaterial
m_Shader: {fileID: 4800000, guid: cfa50fc6e259b524ea01ec7dde0f108d, type: 3}
m_ShaderKeywords: _ALPHATEST_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
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: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _FresnelPower: 0.16
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _HandAlpha: 1
- _Metallic: 0
- _MinVisibleAlpha: 0.1
- _Mode: 1
- _OcclusionStrength: 1
- _Parallax: 0.02
- _RimFactor: 0.66
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _ColorBottom: {r: 0.69411767, g: 0.7254902, b: 0.7529412, a: 1}
- _ColorPrimary: {r: 0.69419724, g: 0.727208, b: 0.754717, a: 1}
- _ColorTop: {r: 0.69411767, g: 0.7254902, b: 0.7529412, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9c05c5a6e4902ff4082cfb34e5b64b2d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,85 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SystemGestureHandMaterial
m_Shader: {fileID: 4800000, guid: cfa50fc6e259b524ea01ec7dde0f108d, type: 3}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
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: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _FresnelPower: 0.215
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _HandAlpha: 1
- _Metallic: 0
- _MinVisibleAlpha: 0.164
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _RimFactor: 0.922
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _ColorBottom: {r: 0.9852941, g: 0.97749966, b: 0.7027465, a: 1}
- _ColorPrimary: {r: 0.75735295, g: 0.75735295, b: 0.75735295, a: 1}
- _ColorTop: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9d107f2f043e1ed408b970f146718017
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,89 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SystemGestureSkeletonBoneMaterial
m_Shader: {fileID: 4800000, guid: cfa50fc6e259b524ea01ec7dde0f108d, type: 3}
m_ShaderKeywords: _ALPHATEST_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
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: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _FresnelPower: 0.16
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _HandAlpha: 1
- _Metallic: 0
- _MinVisibleAlpha: 0.1
- _Mode: 1
- _OcclusionStrength: 1
- _Parallax: 0.02
- _RimFactor: 0.66
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _ColorBottom: {r: 0.9843137, g: 0.9764706, b: 0.7019608, a: 1}
- _ColorPrimary: {r: 0.69419724, g: 0.727208, b: 0.754717, a: 1}
- _ColorTop: {r: 0.69411767, g: 0.7254902, b: 0.7529412, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 38beab19e7c1f7947afac78fd60f90b0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b758ad845ed2d9749a2e174b3de7de81
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,172 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1870938896605422
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4453513310108136}
- component: {fileID: 114428879332287356}
- component: {fileID: 114567484643301796}
- component: {fileID: 114392993255165844}
- component: {fileID: 114925265787909616}
- component: {fileID: 114252240061623322}
- component: {fileID: 137619227449585070}
m_Layer: 0
m_Name: OVRHandPrefabBuildingBlock
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4453513310108136
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1870938896605422}
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
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &114428879332287356
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1870938896605422}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cb7623a8f0b49cf4dbaa40aea4d4be64, type: 3}
m_Name:
m_EditorClassIdentifier:
HandType: 0
_pointerPoseRoot: {fileID: 0}
m_showState: 3
--- !u!114 &114567484643301796
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1870938896605422}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2609c54f376cffc4da1ab9401cc1a36f, type: 3}
m_Name:
m_EditorClassIdentifier:
_skeletonType: 0
_updateRootPose: 0
_updateRootScale: 1
_enablePhysicsCapsules: 0
_applyBoneTranslations: 1
--- !u!114 &114392993255165844
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1870938896605422}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 54c16b381e28e8d479237771d234dbae, type: 3}
m_Name:
m_EditorClassIdentifier:
_confidenceBehavior: 1
_systemGestureBehavior: 1
_renderPhysicsCapsules: 0
_skeletonMaterial: {fileID: 2100000, guid: 9c05c5a6e4902ff4082cfb34e5b64b2d, type: 2}
_capsuleMaterial: {fileID: 0}
_systemGestureMaterial: {fileID: 2100000, guid: 38beab19e7c1f7947afac78fd60f90b0,
type: 2}
--- !u!114 &114925265787909616
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1870938896605422}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5cc5c234723e3a54d8dd09b131117743, type: 3}
m_Name:
m_EditorClassIdentifier:
_meshType: 0
--- !u!114 &114252240061623322
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1870938896605422}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 73eac66b128fc8749a21623225c34541, type: 3}
m_Name:
m_EditorClassIdentifier:
_ovrMesh: {fileID: 0}
_ovrSkeleton: {fileID: 0}
_confidenceBehavior: 1
_systemGestureBehavior: 1
_systemGestureMaterial: {fileID: 2100000, guid: 9d107f2f043e1ed408b970f146718017,
type: 2}
--- !u!137 &137619227449585070
SkinnedMeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1870938896605422}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 3
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: aa70c70787230f248b33d8a0ce1a6c3d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 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: 0}
m_Bones: []
m_BlendShapeWeights: []
m_RootBone: {fileID: 0}
m_AABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_DirtyAABB: 0
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 929a4e1a0ccfe2048b9390905f78fc4d
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0adfb60b685c2e14391c3ce3b67bbb22
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,59 @@
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
* All rights reserved.
*
* Licensed under the Oculus SDK License Agreement (the "License");
* you may not use the Oculus 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/oculussdk/
*
* Unless required by applicable law or agreed to in writing, the Oculus 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 System.Collections.Generic;
using UnityEngine;
namespace Meta.XR.BuildingBlocks.Editor
{
public class HandTrackingBlockData : BlockData
{
protected override List<GameObject> InstallRoutine()
{
var cameraRig = OVRProjectSetupUtils.FindComponentInScene<OVRCameraRig>();
if (cameraRig == null)
{
throw new InvalidOperationException(
"The Hand Tracking BB cannot be installed without a camera rig present in the scene.");
}
var leftHand = Instantiate(Prefab, Vector3.zero, Quaternion.identity);
leftHand.SetActive(true);
leftHand.name = $"[BB] {BlockName} left";
leftHand.transform.parent = cameraRig.leftHandAnchor;
leftHand.GetComponent<OVRHand>().HandType = OVRHand.Hand.HandLeft;
leftHand.GetComponent<OVRSkeleton>().SetSkeletonType(OVRSkeleton.SkeletonType.HandLeft);
leftHand.GetComponent<OVRMesh>().SetMeshType(OVRMesh.MeshType.HandLeft);
var rightHand = Instantiate(Prefab, Vector3.zero, Quaternion.identity);
rightHand.SetActive(true);
rightHand.name = $"[BB] {BlockName} right";
rightHand.transform.parent = cameraRig.rightHandAnchor;
rightHand.GetComponent<OVRHand>().HandType = OVRHand.Hand.HandRight;
rightHand.GetComponent<OVRSkeleton>().SetSkeletonType(OVRSkeleton.SkeletonType.HandRight);
rightHand.GetComponent<OVRMesh>().SetMeshType(OVRMesh.MeshType.HandRight);
return new List<GameObject> {leftHand, rightHand};
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 484800a18d70d2d4386ee3f42ef24113
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,87 @@
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
* All rights reserved.
*
* Licensed under the Oculus SDK License Agreement (the "License");
* you may not use the Oculus 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/oculussdk/
*
* Unless required by applicable law or agreed to in writing, the Oculus 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.Linq;
using UnityEditor;
namespace Meta.XR.BuildingBlocks.Editor
{
[InitializeOnLoad]
internal static class HandTrackingSetupRules
{
static HandTrackingSetupRules()
{
OVRProjectSetup.AddTask(
level: OVRProjectSetup.TaskLevel.Required,
group: OVRProjectSetup.TaskGroup.Compatibility,
isDone: _ =>
{
if (!HandTrackingBuildingBlockExists())
{
return true;
}
var projectConfig = OVRProjectConfig.CachedProjectConfig;
return projectConfig.handTrackingSupport != OVRProjectConfig.HandTrackingSupport.ControllersOnly;
},
message: $"Hand Tracking must be enabled in OVRManager when using its {Utils.BlockPublicName}",
fix: _ =>
{
var projectConfig = OVRProjectConfig.CachedProjectConfig;
projectConfig.handTrackingSupport = OVRProjectConfig.HandTrackingSupport.ControllersAndHands;
OVRProjectConfig.CommitProjectConfig(projectConfig);
},
fixMessage: $"Enable Hand Tracking must be enabled in OVRManager"
);
OVRProjectSetup.AddTask(
level: OVRProjectSetup.TaskLevel.Required,
group: OVRProjectSetup.TaskGroup.Compatibility,
isDone: _ =>
{
if (!HandTrackingBuildingBlockExists())
{
return true;
}
var projectConfig = OVRProjectConfig.CachedProjectConfig;
return projectConfig.handTrackingVersion == OVRProjectConfig.HandTrackingVersion.V2;
},
message: $"Hand Tracking V2 is required when using the Hand Tracking {Utils.BlockPublicName}",
fix: _ =>
{
var projectConfig = OVRProjectConfig.CachedProjectConfig;
projectConfig.handTrackingVersion = OVRProjectConfig.HandTrackingVersion.V2;
OVRProjectConfig.CommitProjectConfig(projectConfig);
},
fixMessage: $"Select Hand Tracking V2"
);
}
private static bool HandTrackingBuildingBlockExists()
{
var handObjects = OVRProjectSetupUtils.FindComponentsInScene<OVRHand>();
return handObjects.Any(hand => hand.GetComponent<BuildingBlock>());
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 51cdf386012239f4b89597171ff0c3f1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cbd581361770b8d48b646ad0bea3b22e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,118 @@
/************************************************************************************
Copyright (c) Facebook Technologies, LLC and its affiliates. All rights reserved.
See SampleFramework license.txt for license terms. Unless required by applicable law
or agreed to in writing, the sample code is provided "AS IS" WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the license for specific
language governing permissions and limitations under the license.
************************************************************************************/
Shader "Oculus Sample/Alpha Hand Outline (SBB)"
{
Properties
{
_ColorPrimary ("Color Primary", Color) = (0.396078, 0.725490, 1)
_ColorTop ("Color Top", Color) = (0.031896, 0.0343398, 0.0368894)
_ColorBottom ("Color Bottom", Color) = (0.0137021, 0.0144438, 0.0152085)
_RimFactor ("Rim Factor", Range(0.01, 1.0)) = 0.65
_FresnelPower ("Fresnel Power", Range(0.01,1.0)) = 0.16
_HandAlpha ("Hand Alpha", Range(0, 1)) = 1.0
_MinVisibleAlpha ("Minimum Visible Alpha", Range(0,1)) = 0.15
}
SubShader
{
Tags {"Queue" = "Transparent" "Render" = "Transparent" "IgnoreProjector" = "True"}
LOD 100
// Write depth values so that you see topmost layer.
Pass
{
ZWrite On
ColorMask 0
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
float4 vert(float4 vertex : POSITION) : SV_POSITION
{
return UnityObjectToClipPos(vertex);
}
fixed4 frag() : SV_Target
{
return 0;
}
ENDCG
}
CGPROGRAM
#include "UnityCG.cginc"
// no deferred. support lightmaps and one light. use half vector instead of
// view vector (less accurate but faster)
#pragma surface surf BlinnPhong alpha:fade exclude_path:prepass noforwardadd halfasview nolightmap
sampler2D _MainTex;
struct Input {
float2 uv_MainTex;
float3 worldRefl;
float3 viewDir;
INTERNAL_DATA
};
#define ColorBlack half3(0, 0, 0)
#define EmissionFactor (0.95)
fixed3 _ColorPrimary;
fixed3 _ColorTop;
fixed3 _ColorBottom;
float _RimFactor;
float _FresnelPower;
float _HandAlpha;
float _MinVisibleAlpha;
float3 SafeNormalize(float3 normal) {
float magSq = dot(normal, normal);
if (magSq == 0) {
return 0;
}
return normalize(normal);
}
void surf(Input IN, inout SurfaceOutput o) {
float3 normalDirection = SafeNormalize(o.Normal);
float3 viewDir = SafeNormalize(IN.viewDir);
half viewDotNormal = saturate(dot(viewDir, normalDirection));
// the higher the rim factor, the greater the effect overall. by default,
// it's strongest near edges
half rim = pow(1.0 - viewDotNormal, 0.5) * (1.0 - _RimFactor) + _RimFactor;
rim = saturate(rim);
half3 emission = lerp(ColorBlack, _ColorPrimary, rim);
// brighten emission a bit, multiply by factor to reign it in
emission += rim * 0.5;
emission *= EmissionFactor;
// effect gets stronger toward edges. note that lerp can extrapolate! saturate first
// potentially could schlick approx, like specColor + (1-specColor)*nDotLight^5
// except here we woulduse nDotView instead of nDotLight
float fresnel = saturate(pow(1.0 - viewDotNormal, _FresnelPower));
fixed3 color = lerp(_ColorTop, _ColorBottom, fresnel);
fixed alphaValue = step(_MinVisibleAlpha, _HandAlpha) * _HandAlpha;
o.Albedo = 0;
o.Gloss = 0;
o.Specular = 0;
o.Alpha = alphaValue;
o.Emission = color * emission;
}
ENDCG
}
}
@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: cfa50fc6e259b524ea01ec7dde0f108d
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
preprocessorOverride: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a68dd9668cd538f4bae28e4d392738b1
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 426 KiB

@@ -0,0 +1,135 @@
fileFormatVersion: 2
guid: d53aa1789d7879a43a2e31d261a304b7
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 2
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 1024
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant: